我已经尝试使用2种方法来检索我的电话号码,但是它们都不起作用。我用过:
我确实获得了网络名称,国家/地区iso和IMEI,但是每当我尝试返回Number时,都不会返回任何内容。
我还为这些添加了所有必需的权限!我的清单如下:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
使用TelephonyManager的代码:
TelephonyManager phoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
phoneMgr.getLine1Number()
使用SubscriptionManager的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
List<SubscriptionInfo> subscription = SubscriptionManager.from(getApplicationContext()).getActiveSubscriptionInfoList();
for (int i = 0; i < subscription.size(); i++) {
SubscriptionInfo info = subscription.get(i);
Log.e("TAG", "number " + info.getNumber());
Log.e("TAG", "network name : " + info.getCarrierName());
Log.e("TAG", "country iso " + info.getCountryIso());
}
}
在两次尝试中我一无所获!
他们是否有其他获取电话号码的方式,或者我做错了什么?
您是否已授予READ_PHONE_STATE权限?
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>