android 自动获取用户手机号
时间: 2023-11-13 15:04:47 浏览: 94
在 Android 中,获取用户手机号需要用户授权,因为手机号属于敏感信息。您可以通过以下步骤获取用户手机号:
1. 在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
```
2. 在代码中请求用户授权:
```java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE},
REQUEST_CODE_PHONE_STATE);
}
```
3. 在 onRequestPermissionsResult() 回调方法中处理用户授权结果:
```java
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE_PHONE_STATE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授权成功,获取手机号
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = tm.getLine1Number();
// ...
} else {
// 用户拒绝授权,无法获取手机号
}
}
}
```
注意事项:
1. 不同的手机厂商可能会有不同的实现,导致无法获取到手机号。
2. 如果用户没有在手机中绑定手机号,getLine1Number() 方法将返回 null。
阅读全文