Как программно включить мобильные данные, используя права администратора устройства?
Мне нужно программно включить в Android. Хотя я знаю, что это невозможно сделать программно, и Android остановил эту опцию с помощью lollipop, есть ли какая-либо лазейка или опция администрирования устройства, чтобы включить ее?
PS: я не хочу включать мобильные данные, перейдя в настройки. Я хочу включить мобильные данные без разблокировки экрана
1 ответ
Решение
работает только для рутованных телефонов
public void setMobileDataState(boolean mobileDataEnabled)
{
try
{
TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Method setMobileDataEnabledMethod = telephonyService.getClass().getDeclaredMethod("setDataEnabled", boolean.class);
if (null != setMobileDataEnabledMethod)
{
setMobileDataEnabledMethod.invoke(telephonyService, mobileDataEnabled);
}
}
catch (Exception ex)
{
Log.e(TAG, "Error setting mobile data state", ex);
}
}
public boolean getMobileDataState()
{
try
{
TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Method getMobileDataEnabledMethod = telephonyService.getClass().getDeclaredMethod("getDataEnabled");
if (null != getMobileDataEnabledMethod)
{
boolean mobileDataEnabled = (Boolean) getMobileDataEnabledMethod.invoke(telephonyService);
return mobileDataEnabled;
}
}
catch (Exception ex)
{
Log.e(TAG, "Error getting mobile data state", ex);
}
return false;
}
Но вам нужно добавить это разрешение (MODIFY_PHONE_STATE) в файл манифеста, в противном случае вы получите исключение SecurityException.