如何获得双卡手机号码?

时间:2017-07-14 13:12:48

标签: android dual-sim

我想从不同的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提供解决这个问题的方法。

2 个答案:

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


    }