发布于2024-11-02 21:00 阅读(696) 评论(0) 点赞(13) 收藏(3)
我正在尝试执行反射以关闭设备系统菜单中的开发者选项“不保留活动”。该设置也称为 setAlwasyFinish()。我知道对于某些设备,您可以使用
Settings.System.putInt(getApplicationContext().getContentResolver(), Settings.System.ALWAYS_FINISH_ACTIVITIES, 0);
(我已在 4.0 设备上成功使用过它。)
但是我使用的是 2.3 设备,此设备未 root。我以为反射可以修改设置。当我执行下面的代码时,我收到异常
发生异常 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"
在调试期间进行了一些认真的挖掘,但该活动需要许可。
<uses-permission android:name="android.permission.SET_ALWAYS_FINISH"/>
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/691844/7bd3f60008cd13c5b6b4/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!