3

为什么这段代码在 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);
	}

4

2 回答 2

1

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

于 2015-07-13T15:48:31.647 回答
1

谷歌务实地取消了他们的数据开/关 API。您可以查看链接上提交的问题。

如果您想了解更多详细信息,请在此链接上详细回答详细讨论

如果你觉得这有帮助,请接受这个作为答案

于 2015-07-13T16:40:14.630 回答