如何在 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 上找到详细的讨论
如果您觉得这有帮助,请采纳为答案
为什么此代码不适用于 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 上找到详细的讨论
如果您觉得这有帮助,请采纳为答案