我正在尝试执行反射以关闭设备系统菜单中的开发者选项“不保持活动”。该设置也称为setAlwasyFinish()。我知道有些设备可以使用
Settings.System.putInt(getApplicationContext().getContentResolver(), Settings.System.ALWAYS_FINISH_ACTIVITIES, 0);
(我在4.0设备上成功使用了它。)
但我正在使用2.3设备,此设备无根。我的印象是反射可以修改设置。 当我执行下面的代码时,我收到异常
java.lang.reflect.invocationtargetexception发生异常。
有人可以向我解释我的代码错误,我收到此错误。谢谢
Class<?> activityManagerNative = Class.forName("android.app.ActivityManagerNative");
Method methodDefault = activityManagerNative.getMethod("getDefault");
final Method methodSetAlwaysFinish = activityManagerNative.getMethod("setAlwaysFinish", new Class[]{boolean.class});
Type[] params = methodSetAlwaysFinish.getGenericParameterTypes();
final Object objectInstance = methodDefault.invoke(null);
methodSetAlwaysFinish.invoke(objectInstance, true);
这些是我正在使用的权限。
android:name="android.permission.WRITE_SETTINGS
android:name="android.permission.CHANGE_CONFIGURATION"
答案 0 :(得分:1)
在调试过程中需要进行一些严肃的挖掘,但活动需要获得许可。
<uses-permission android:name="android.permission.SET_ALWAYS_FINISH"/>