我尝试了以下代码来获取自己的数字并获得一个NULL字符串。有什么问题?
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = mTelephonyMgr.getLine1Number();
许可
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
答案 0 :(得分:3)
使用TelephonyManager.getLine1Number()
但您需要将电话号码存储在SIM卡上,而且无法通过其他方式获取“自己的号码”。
示例:
TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String myPhoneNumber = tm.getLine1Number();
并且您需要此权限到您的Manifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
看到这个问题: TelephonyManager.getLine1Number() failing? 如描述,你需要评估:
if("SIM card present" && "phone number is stored") {
"get the phone number with TelephonyManager.getLine1Number"
}
答案 1 :(得分:0)
将此添加到您的清单
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
您需要用户的权限才能检索此数据
如果它仍然返回null,则表示数据不可用,并且您无法使用它。