启用/禁用分组数据的使用

时间:2012-01-09 13:24:25

标签: android android-widget

我想为主屏幕创建小部件,通过它我可以启用/禁用网络提供商的分组数据。

我知道如何制作小工具,但如果有人帮我通过编码启用/禁用数据包数据那么它将会很有帮助

提前致谢

2 个答案:

答案 0 :(得分:2)

private void setMobileDataEnabled(Context context, boolean enabled) {
    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, enabled);
    }
    catch (Exception e) 
    {
        // TODO: handle exception
    }
}

答案 1 :(得分:1)

看看How to disable Mobile Data on Android。接受的答案的作者通过java反射访问ITelephony接口实现了这一目标。