android 获取手机号
时间: 2023-09-13 09:07:55 浏览: 83
在 Android 平台上,获取手机号需要用户授权,因为手机号属于敏感信息。需要在 Manifest 文件中添加 READ_PHONE_STATE 权限,然后使用 TelephonyManager 类来获取手机号。
以下是获取手机号的示例代码:
```java
// 检查权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
// 获取手机号
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = telephonyManager.getLine1Number();
}
else {
// 请求权限
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
}
// 处理权限请求结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 获取手机号
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = telephonyManager.getLine1Number();
}
}
```
但是需要注意的是,有些手机运营商可能不会在 SIM 卡中存储手机号,或者会将手机号存储在其他位置,这时获取手机号可能会失败或者返回空字符串。
阅读全文