无法读取我的另一个应用程序的共享首选项

时间:2019-03-06 10:33:49

标签: android sharedpreferences android-contentprovider

我有两个应用程序-应用程序1和应用程序2
我想从App1访问App2数据。
但是,我不需要复杂的数据库结构,只需要从App1中读取几个布尔标志即可。
一种方法是使用内容提供程序,在这里我需要定义表或一些结构化数据。
意图也不太有用,因为我不想在影响任何更改后立即启动应用程序
还有其他相对不太复杂的解决方法吗?
(我不希望它将其绑定到任何适配器或任何适配器。假定SharedPreference中有两个布尔值:App2中的Value1和Value2,我希望通过App1访问它)

2 个答案:

答案 0 :(得分:0)

第一个应用:

SharedPreferences prefs = getSharedPreferences("test_prefs",
                Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putBoolean("pref_key", true);
        editor.commit();

第二个应用:

/* where com.example is the first app containing the preferences */
Context myContext = createPackageContext("com.example",Context.CONTEXT_IGNORE_SECURITY); 

SharedPreferences testPrefs = myContext.getSharedPreferences 
    ("test_prefs", Context.MODE_WORLD_READABLE); 


 boolean data = pref.getBoolean("pref_key", false);

答案 1 :(得分:0)

正确的方法是在App1上创建服务,然后从App2绑定到该服务。

这里是一个供您参考的链接。 https://stuff.mit.edu/afs/sipb/project/android/docs/guide/components/bound-services.html