2016-10-03 161 views
1

有無論如何檢查移動數據是從SIM卡1或SIM卡2在Android編程活動?檢查移動數據是從SIM卡或SIM卡2 Android

另外我想獲取數據處於活動狀態的運營商提供商。

當量: SIM 1:載體1 辛2:載體2

如果數據是在SIM 2 活性它應該返回載體2的名稱。

回答

0

我的方式(的Android> = 22)

int getDefaultDataSubscriptionId(final SubscriptionManager subscriptionManager) 
 
     { 
 
     if (android.os.Build.VERSION.SDK_INT >= 24) 
 
      { 
 
      int nDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId(); 
 

 
      if (nDataSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) 
 
       { 
 
       return (nDataSubscriptionId); 
 
       } 
 
      } 
 
     try 
 
      { 
 
      Class<?> subscriptionClass = Class.forName(subscriptionManager.getClass().getName()); 
 

 
      try 
 
       { 
 
       Method getDefaultDataSubscriptionId = subscriptionClass.getMethod("getDefaultDataSubId"); 
 

 
       try 
 
        { 
 
        return ((int) getDefaultDataSubscriptionId.invoke(subscriptionManager)); 
 
        } 
 
       catch (IllegalAccessException e1) 
 
        { 
 
        e1.printStackTrace(); 
 
        } 
 
       catch (InvocationTargetException e1) 
 
        { 
 
        e1.printStackTrace(); 
 
        } 
 
       } 
 
      catch (NoSuchMethodException e1) 
 
       { 
 
       e1.printStackTrace(); 
 
       } 
 
      } 
 
     catch (ClassNotFoundException e1) 
 
      { 
 
      e1.printStackTrace(); 
 
      } 
 
     return (SubscriptionManager.INVALID_SUBSCRIPTION_ID); 
 
     } 
 

 
    @TargetApi(22) 
 
    public String getUIText22(final TelephonyManager telephonyManager) 
 
     { 
 
     SubscriptionManager subscriptionManager = (SubscriptionManager) getContext().getApplicationContext().getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE); 
 

 
     int nDataSubscriptionId = getDefaultDataSubscriptionId(subscriptionManager); 
 

 
     if (nDataSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) 
 
      { 
 
      SubscriptionInfo si = subscriptionManager.getActiveSubscriptionInfo(nDataSubscriptionId); 
 

 
      if (si != null) 
 
       { 
 
       return (si.getCarrierName().toString()); 
 
       } 
 
      } 
 
    }