如何在android studio中获取手机号码?我尝试使用此代码获取我的手机号码,但返回值为空。
TelephonyManager tpm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String number = tpm.getLine1Number();
答案 0 :(得分:1)
这是https://developer.android.com/reference/android/telephony/TelephonyManager.html
的相关文件getLine1Number
String getLine1Number()返回第1行的电话号码字符串, 例如,GSM手机的MSISDN。如果是,则返回null 不可用。
默认的短信应用也可以使用此功能。
需要READ_PHONE_STATE,READ_SMS或READ_PHONE_NUMBERS 权限。
此外,如果您使用的是Android 6.0或更高版本,请添加以下代码。 此代码检查应用程序是否具有读取用户联系人的权限,如果需要,它还会请求用户的许可。试试这个
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
}