我尝试使用 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());
}
}
在这两次尝试中,我什么也没得到!
有没有其他方法可以获取电话号码,或者我做错了什么?