如何在android studio中获取手机号码?

时间:2017-07-21 05:35:33

标签: android phone-number telephonymanager

如何在android studio中获取手机号码?我尝试使用此代码获取我的手机号码,但返回值为空。

TelephonyManager tpm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tpm.getLine1Number();

1 个答案:

答案 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);

}
}