我有多个应用程序通过首选项共享某些数据.每个应用程序通过PreferenceActitivity(来自xml)设置其首选项.两个问题:
如何在另一个应用中使用/编辑一个应用创建的首选项.如果我弄清楚如何使用将解决问题的PreferenceActivity创建MODE_WORLD_WRITEABLE首选项.
SharedPreferences prefs = getSharedPreferences( <String referring to another package´s prefs>, MODE_WORLD_WRITEABLE); HashMap<String, String> map = (HashMap<String, String>) prefs .getAll(); String str = map.toString(); tv.setText(str);
上面的代码返回{}
>其次,我如何使用addPreferencesFromIntent(i) – 即使意图不是Null,我也会得到NullPointerException.
我在这里先向您的帮助表示感谢.
最好,
萨米尔
解决方法:
要以安全的方式从另一个应用程序访问首选项,请在Manifest中设置相同的android:sharedUserId.这将允许您访问首选项和文件采用MODE_PRIVATE(或安全)方式.
花了很长时间后,我们意识到这一点无法工作,需要创建第一个应用程序的包上下文来访问第二个应用程序中的文件:
try { Context c = createPackageContext(com.app.first, MODE_PRIVATE); SharedPreferences prefs = c.getSharedPreferences( "com.app.first_preferences", MODE_PRIVATE); } catch (nameNotFoundException e) { e.printstacktrace(); }
非常感谢@CommonsWare和Karthik Shanmugam的帮助!
总结以上是内存溢出为你收集整理的Android PreferenceActivity可跨应用程序创建MODE_WORLD_WRITEABLE首选项全部内容,希望文章能够帮你解决Android PreferenceActivity可跨应用程序创建MODE_WORLD_WRITEABLE首选项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)