1

我正在尝试执行反射以关闭设备系统菜单中的开发人员选项不要保持活动。该设置又名 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"
4

1 回答 1

1

在调试过程中进行了一些认真的挖掘,但该活动需要许可。

<uses-permission android:name="android.permission.SET_ALWAYS_FINISH"/>
于 2013-09-30T16:23:30.087 回答