Как включить мобильный интернет на Android
Мне нужно программно включить мобильный интернет. Wifi можно включить через WifiManager, а как включить мобильный интернет?
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Есть такой способ:
public void setMobileDataState(boolean mobileDataEnabled) {
try {
TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Method setMobileDataEnabledMethod = Objects.requireNonNull(telephonyService).getClass().getDeclaredMethod("setDataEnabled", boolean.class);
setMobileDataEnabledMethod.invoke(telephonyService, mobileDataEnabled);
} catch (Exception ex) {
Log.e("MainActivity", "Error setting mobile data state", ex);
}
}
чтобы проверить состояние сети используйте данную функцию:
public boolean getMobileDataState() {
try {
TelephonyManager telephonyService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Method getMobileDataEnabledMethod = Objects.requireNonNull(telephonyService).getClass().getDeclaredMethod("getDataEnabled");
return (boolean) (Boolean) getMobileDataEnabledMethod.invoke(telephonyService);
} catch (Exception ex) {
Log.e("MainActivity", "Error getting mobile data state", ex);
}
return false;
}
Вот подобный вопрос_1, и вот вопрос_2, ну и доки само собой :) Не забудьте проверить в манифесте наличие разрешений.