gpt4 book ai didi

android - 如何读取其他应用程序的 SharedPreferences(相同的用户 ID)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:21 24 4
gpt4 key购买 nike

在 Android 4.3 上测试。我有两个应用程序,com.my.app.firstcom.my.app.second。在我的 Activity 中,我想从其他应用程序中读取偏好。我选择为我的两个应用程序使用相同的用户 ID:

android:sharedUserId="com.my.app"

我总是这样加载我的偏好:

prefs = getSharedPreferences("MyAppPreferences", Context.MODE_PRIVATE);

现在,在我的第二个应用中,我执行以下操作:

try {
Context context = createPackageContext("com.my.app.first", Context.CONTEXT_IGNORE_SECURITY);
// context.getPackageName() does indeed return "com.my.app.first"

// Note: Context.MODE_WORLD_READABLE makes no difference here!
prefs = context.getSharedPreferences("MyAppPreferences", Context.MODE_PRIVATE);
}

prefs.mFile 错误地指向 /data/data/com.my.app.second/shared_prefs/MyAppPreferences.xml

显然,调用 getSharedPreferences返回当前应用程序的首选项,即使我使用了其他应用程序的上下文。我究竟做错了什么?请帮忙!

最佳答案

发现问题了!这看起来确实像是 getSharedPreferences API 中的错误。事实证明,对 getSharedPreferencesprevious 调用导致另一个 context.getSharedPreferences() 调用返回上一个实例 - 当前应用程序的首选项。

解决方案是确保 getSharedPreferences() 在读取其他应用程序的首选项之前被调用。

关于android - 如何读取其他应用程序的 SharedPreferences(相同的用户 ID)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18313549/

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