Enable/Disable Mobile Data (GPRS) using code

前端 未结 4 1623

I was having one solution for enabling and disabling data that was working good in API 8 and 10, but that code was not compatible with the ICS, I need a global solution, so

4条回答
  •  萌比男神i
    2020-12-09 14:21

    This code running in android gingerbread and higher:

    private void setMobileDataEnabled(Context context, boolean enabled) {
       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, enabled);
    }
    

    NOTE: U MUST ADD THIS BELOW LINE IN ANDROIDMAINFEST.XML

    
    

提交回复
热议问题