Android中编辑其他应用的SharedPreferences(一)
来源:互联网 发布:java线程间传递数据 编辑:程序博客网 时间:2024/05/23 22:20
背景:在源生Settings中,增加一个页面,可以配置其他应用的设置
思路:1.读取其他应用的xml
2.在Settings中修改配置信息
3.更新其他应用的xml
加载资源:在PreferenceFragment中使用addPreferenceFromIntent(Intent intent)方法。这个方法可以获得其他APK中的Preference的布局资源。参数Intent可以使有Action的隐式启动,也可以是指明包名类名的显示启动。效果类似常用的addPreferenceFromResource。
但是在使用过程中有两个问题:1.无法打开所有继承了DialogPreference的控件。
2.保存的值是针对当前的APK的,即无法实现修改其他APK的保存内容。
第一个问题的原因是所有弹出的Dialog的Context属性都不是基于当前的Activity的,这个Context是在addPreferenceFromIntent(Intent intent)这个方法中根据包名生成的。解决的办法是获取这个Preference控件的所有属性,在代码中创建新的相同的控件,赋值、替换。
第二个问题,没什么原因,Android就是这样的。最开始的解决方法就是主动去修改对应APK的SharedPreferences。参考许多书、及网络资料,发现大多说可以修改其他APk的SharedPreferences,只要这个SharedPreferences权限足够就可以。实践过发现这帮鸟人都是网上互相抄抄,也没怎么研究。SharedPreferences只能跨进程读,并不能修改。因为程序默认修改的权限是在本应用下,没有权限修改其他APK目录下产生的文件。即便把权限设置成Context.MODE_WORLD_WRITEABLE。这个不信可以尝试一下。
主要讨论一下第二个问题的解决方案。
- Android中编辑其他应用的SharedPreferences(一)
- Android中编辑其他应用的SharedPreferences(二)
- Android读取其他应用的SharedPreferences
- Android中SharedPreferences的用法(一)
- 读写其他应用的SharedPreferences
- 读写其他应用的SharedPreferences
- android 读写其他应用SharedPreferences存储的数据
- Android问题—读取其他应用的SharedPreferences
- 在其他应用中获取SharedPreferences 保存的数据
- Android开发中SharedPreferences的应用
- 获取其他应用的SharedPreferences共享内存
- Android 中SharedPreferences跨应用读取数据的
- Android 中SharedPreferences跨应用读取数据的
- Android 中SharedPreferences跨应用读取数据的
- UITabelView的编辑方式以及其他应用
- Android中SharedPreferences的用法(二)
- android6.0 中一个应用获取其他应用SharedPreferences 保存的数据 问题,获取不到求解啊??
- SharedPreferences具体使用方法及createPackageContext方法(获取其他应用的共享文件)
- xcode6创建的项目添加pch文件
- 李若彤揭秘退隐10年原因:感情不顺 父亲离世 曾患抑郁症
- Establish induction
- Put videos of your p
- 2015年西安小升初奥数培训班奥数老师(排名排行)龙虎英雄榜
- Android中编辑其他应用的SharedPreferences(一)
- java线程中Exchanger使用
- Django设置TIME_ZONE和LANGUAGE_CODE为中国区域
- java小程序——《连连看(简易版)》
- android通过手机热点通信
- C++ 类构造函数初始化顺序
- Eclipse控制台console自动跳出来
- 3岁男孩把502胶水滴进眼里 熊孩子伤不起啊!!!
- nyoj.6 喷水装置(一) 20141101