2015-10-07 4 views
8

Я сделал приложение сетевого монитора. Здесь я успешно реализовал все. У меня есть двойной сим-телефон для Android. Я знаю, как получить имя оператора. Но я хочу, чтобы тот сим подключился к интернету? Я использовал этот код, чтобы показать пользователю, что устройство подключено через мобильные данные. Я хочу быть более конкретным, что устройство в настоящее время использует интернет-адрес оператора.Как получить имя оператора, подключенного к Интернету в телефоне с двумя сим-телефонами?

public static String isInternetConnected (Context ctx) { 
     ConnectivityManager connectivityMgr = (ConnectivityManager) ctx 
       .getSystemService(CONNECTIVITY_SERVICE); 
     NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
     // Check if wifi or mobile network is available or not. If any of them is 
     // available or connected then it will return true, otherwise false; 
     if (wifi != null) { 
      if (wifi.isConnected()) { 
       return "wifi"; 
      } 
     } 
     if (mobile != null) { 
      if (mobile.isConnected()) { 
       return "mobile"; 
      } 
     } 
     return "none"; 
    } 
+0

вы получите решение? –

ответ

0

Там нет API о нескольких симов, прежде чем API 22. Вы можете обратиться к производителю устройства и проверить есть ли они к SDK дополнения для доступа к нескольким симов или нет.

С API 22 вы можете проверить наличие нескольких SIM-карт, используя метод SubscriptionManager getActiveSubscriptionInfoList(). Подробнее об Android Docs.

Пожалуйста, смотрите multiple sims. Вот несколько обсуждений о множественности, надеюсь, это поможет вам найти способ доступа к нескольким сим-сетям.

0

Проверить этот код https://github.com/dragos-niculescu/dualsim/blob/master/src/com/example/dualsim/TelephonyInfo.java

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
int dataNetworkTypeSIM1 = telephonyManager.getNetworkType(); 
int dataNetworkTypeSIM2 = 0; 
try { 
    dataNetworkTypeSIM1 = Integer.parseInt(getStringOfInt(context, "getNetworkTypeGemini", 0)); 
    dataNetworkTypeSIM2 = Integer.parseInt(getStringOfInt(context, "getNetworkTypeGemini", 1)); 
} catch (GeminiMethodNotFoundException e) { 
    try { 
     dataNetworkTypeSIM1 = Integer.parseInt(getStringOfInt(context, "getDataNetworkTypeGemini", 0)); 
     dataNetworkTypeSIM2 = Integer.parseInt(getStringOfInt(context, "getDataNetworkTypeGemini", 1)); 
    } catch (GeminiMethodNotFoundException e1) { 
     try { 
      dataNetworkTypeSIM1 = Integer.parseInt(getStringOfInt(context, "getDataNetworkType", 0)); 
      dataNetworkTypeSIM2 = Integer.parseInt(getStringOfInt(context, "getDataNetworkType", 1)); 
     } catch (GeminiMethodNotFoundException e2) { 
      try { 
        dataNetworkTypeSIM1 = Integer.parseInt(getStringOfInt(context, "getNetworkType", 0)); 
        dataNetworkTypeSIM2 = Integer.parseInt(getStringOfInt(context, "getNetworkType", 1)); 
      } catch (GeminiMethodNotFoundException e3) {} 
     } 
    } 
} 

Вы можете получить все доступные методы по телефону:

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
Method[] methods = Class.forName(telephonyManager.getClass().getName()).getMethods(); 

 Смежные вопросы

  • Нет связанных вопросов^_^