Отключить передачу данных в Dual SIM Android
Я хочу отключить передачу данных, и я использую этот код.
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();
}
это не будет работать в двойной сим. так что кто-то может мне помочь. Как я могу отключить подключение для передачи данных в Dual SIM телефона Android? и как я могу проверить, если телефон двойной сим или нет
1 ответ
Решение
Некоторые вещи, чтобы упомянуть здесь:
- до Android 5.1 не было официального API для функциональности dual sim. Таким образом, кажется, нет универсального решения для старых устройств. Начиная с 5.1 доступен API.
- ваш код больше не будет работать на Android 5+, как указано в этом вопросе
- тем не менее, этот ответ обеспечивает решение обеих пули выше: метод
setMobileNetworkfromLollipop
проверяет, является ли цель 5 или 5,1+, и в случае 5,1+ она проходит по всем идентификаторам подписки (= сим-карты) для переключения служб данных. Вы можете комбинировать его с вашим кодом, чтобы ориентироваться и на предыдущие версии. Недостаток: требуется рут-доступ, а функциональность dual-sim ограничена до 5.1+.