gpt4 book ai didi

Android PreferenceActivity 跨应用创建 MODE_WORLD_WRITEABLE 首选项

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:11 25 4
gpt4 key购买 nike

我有多个应用程序通过首选项共享某些数据。每个应用程序都通过 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) - 即使 Intent 不是 Null,我也会收到 NullPointerException。

提前感谢您的帮助。

最好的,萨米尔

最佳答案

要以安全的方式从另一个应用程序访问首选项,请设置相同的 android:sharedUserId在 list 中。这将允许您以 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 首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3536928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com