在Android 4.4或以上开启/关闭3g

时间:2015-01-07 17:56:09

标签: android eclipse 3g

我的SDK已升级,我无法使用Eclipse上的代码启用或禁用3G。

此代码不再有效。

private void setMobileDataEnabled(Context context, boolean enabled) throws
        ClassNotFoundException, NoSuchFieldException, IllegalAccessException,
        NoSuchMethodException, InvocationTargetException {
    final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(
        Context.CONNECTIVITY_SERVICE);
    final Class conmanClass = Class.forName(conman.getClass().getName());
    final Field connectivityManagerField = conmanClass.getDeclaredField("mService");
    connectivityManagerField.setAccessible(true);
    final Object connectivityManager = connectivityManagerField.get(conman);
    final Class connectivityManagerClass =  Class.forName(connectivityManager
        .getClass().getName());
    final Method setMobileDataEnabledMethod = connectivityManagerClass
        .getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
    setMobileDataEnabledMethod.setAccessible(true);

    setMobileDataEnabledMethod.invoke(connectivityManager, enabled);
}

1 个答案:

答案 0 :(得分:0)

应用程序不应自行打开或关闭3g / 4g / GPS。有一些故障/解决方法允许它但它们不可靠,因为它们正在修复。

您应该做的是,通知用户他们的3g状态需要更改,可能使用 AlertDialog ,并让他们选择导航到手机设置页面,通过意图,他们可以手动启用3g。