如何在以编程方式使用SMS管理器在双卡手机中发送短信之前提示选择SIM卡?

时间:2018-05-07 12:11:39

标签: android sms smsmanager

  

如何通过提示选择SIM卡来查找SubscriptionId?

 SmsManager smsManager = null;
                   if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
                     smsManager = SmsManager.getSmsManagerForSubscriptionId();
                   }else{
                       smsManager = SmsManager.getDefault();
                   }`

getSmsManagerForSubscriptionId()

中需要

订阅ID

1 个答案:

答案 0 :(得分:0)

您可以subscriptionManagerObj.getActiveSubscriptionInfoList()根据Sim Slot获取subscriptionIds。基于documentation

  

获取当前插入的SIM的SubscriptionInfo。的的   记录将按getSimSlotIndex()排序,然后按getSubscriptionId()

排序
 SmsManager smsManager = null;
 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {

    SubscriptionManager subscriptionManager = (SubscriptionManager)getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
    List<SubscriptionInfo> subscriptionInfoList=subscriptionManager.getActiveSubscriptionInfoList();
    int subId = subscriptionInfoList.get(0).getSubscriptionId();// change index to 1 if you want to get Subscrption Id for slot 1.
    smsManager = SmsManager.getSmsManagerForSubscriptionId(subId);

 }else{
      smsManager = SmsManager.getDefault();
 }