Выключите мобильные данные программно

Я хочу отключить мобильные данные в моем проекте

boolean DataOnOff(boolean status, Context context){

    try {
        final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

            final Class<?> conmanClass = Class.forName(conman.getClass().getName());

            final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");

            iConnectivityManagerField.setAccessible(true);

            final Object iConnectivityManager = iConnectivityManagerField.get(conman);

            final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());

            final Method setMobileDataEnabledMethod =  iConnectivityManagerClass
                    .getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);

            setMobileDataEnabledMethod.setAccessible(true);
            setMobileDataEnabledMethod.invoke(iConnectivityManager, status);

            return true;
      } catch (Exception e) {
        Log.e("Mobile Data", "error turning on/off data");
        return false;
    }
}

И когда вызвать этот метод в onReceive метод со значением true или false, переданным statusэтот метод все еще не работает.

0 ответов

Другие вопросы по тегам