2015-07-25 3 views
1

Я хочу отключить подключение к данным, и я использую этот код.отключить подключение данных в двойном сим-андроиде

ConnectivityManager dataManager; 
    dataManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 

    try { 
     dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class); 
    } catch (NoSuchMethodException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    dataMtd.setAccessible(true); 
    try { 
     dataMtd.invoke(dataManager, false); 
    } catch (IllegalAccessException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

это не будет работать в двойном сим. так может кто-то мне помочь. Как отключить подключение к данным в телефоне с двумя SIM-картами? и как я могу проверить, если телефон с двумя сим или не

ответ

1

Некоторые вещи, чтобы упомянуть здесь:

  • перед тем Android 5.1 не было никаких официальных API для двойной функциональности сим. Таким образом, для старых устройств не существует универсального решения. Начиная с 5.1 доступен API.
  • ваш код больше не будет работать на Android 5+, как отметил in this question
  • однако this answer обеспечивает решение обеих этих пуль: метод setMobileNetworkfromLollipop проверяет, является ли цель является 5 или 5.1 +, а в случае 5.1 + он перебирает все идентификаторы подписки (= сим-карты) для переключения служб данных. Вы могли бы объединить его с вашим кодом для таргетинга на предыдущие версии. Недостаток: для этого требуется root-доступ, а функция dual-sim ограничена 5.1+.

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

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