Я использую этот код для включения или отключения данных Интернета 3G в своем приложении. Я прочитал несколько вопросов о скрытых функциях отражения и все такое, но он работал очень хорошо в тысячах телефонов с очень разными версиями Android (мое приложение в PlayStore, и у меня не было никаких проблем с ним). Но я беспокоюсь, потому что нашел человека, чей телефон не в состоянии это сделать. Прежде всего позвольте мне показать код, я использую:Включение/выключение проблемы с данными
try
{ final ConnectivityManager conman = (ConnectivityManager) MyContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if(conman == null) return false;
Class conmanClass = Class.forName(conman.getClass().getName());
if(conmanClass == null) return false;
Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
if(iConnectivityManagerField == null) return false;
iConnectivityManagerField.setAccessible(true);
Object iConnectivityManager = iConnectivityManagerField.get(conman);
if(iConnectivityManager == null) return false;
Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
if(iConnectivityManagerClass == null) return false;
Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
if(setMobileDataEnabledMethod == null) return false;
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, true/false); //Here is where you choose to enable or to disable
return true; //Everything went OK
}catch(Exception e)
{ return false;
}
Ошибка находится в строке:
Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
С этим результатом:
java.lang.NoSuchFieldException: mService
Этот телефон Samsung Galaxy SII с использованием Jelly Bean 4.1.1 Любые идеи? Я боюсь, что люди начнут сообщать о том же вопросе.
use-permission android: name = "android.permission.MODIFY_PHONE_STATE" /> добавить это разрешение ваш mainfest – QuokMoon
Он был добавлен. Как я уже сказал, он уже работает на многих телефонах. Благодарю. – Ton