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

Google は、実用的にデータのオン/オフ用の API を中止しました。リンクで提出された問題を確認できます。

詳細を知りたい場合は、詳細な議論があるこのリンクに長い答えがあります

これが役立つと思われる場合は、これを回答として受け入れてください

于 2015-07-13T16:40:14.630 に答える