如何在 Android 5.0 上以编程方式打开 off/on 3G/4G/数据?

How can I turn off/on 3G/4G/Data programmatically on Android 5.0?

为什么此代码不适用于 android 5.0

我在 android 4.3 上测试,但在 android 5.0 上不工作。

请帮助我。

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 java.lang.reflect.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);
 }

在棒棒糖之前使用反射是可能的。不可能了。

Google 务实地取消了他们 API 的数据 on/off。 您可以查看 link.

上提交的问题

如果您想了解更多详细信息,请在 link 上找到详细的讨论

如果您觉得这有帮助,请采纳为答案