Как включить мобильный интернет на 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, ну и доки само собой :) Не забудьте проверить в манифесте наличие разрешений.

→ Ссылка