2016-10-03 3 views
1

モバイルデータがAndroidのsim 1またはsim 2からプログラムでアクティブになっていることを確認するにはどうすればよいですか?モバイルデータをチェックするにはsimまたはsimから2つのアンドロイド

また、データが有効な通信事業者を取得したいと考えています。

式: SIM 1:キャリア1 シム2:キャリア2

データは、SIM 2 上でアクティブである場合、それはキャリア2名を返す必要があります。

答えて

0

私の方法(アンドロイド> = 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()); 
 
       } 
 
      } 
 
    }

関連する問題