我想从不同的SIM卡中获取手机号码。双SIM卡号码保存在不同的变量中。
有些人会给出答案:
TelephonyManager tm =(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String number = tm.getLine1Number();
我还在Manifest文件中给出了权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
但它不起作用,所有number
变量给出(&#34;&#34;)值。所以请为mw提供解决这个问题的方法。
答案 0 :(得分:0)
如果tm.getLine1Number()
返回null或“”尝试使用tm.getSubscriberId()
,它总是对我有用。
String number = tm.getLine1Number();
if (number == null || number.equals("")) {
number = tm.getSubscriberId();
}
希望这有帮助。
答案 1 :(得分:0)
您可以通过Subscription Manager for minSdkVersion 22开始执行此操作:)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SubscriptionManager mSubscriptionManager = SubscriptionManager.from(getBaseContext());
List<SubscriptionInfo> subscriptions = mSubscriptionManager.getActiveSubscriptionInfoList();
for(SubscriptionInfo subscriptionInfo: subscriptions) {
Log.v("SIM", subscriptionInfo.getNumber());
}
}