我一直在努力解决这个问题.基本上,我希望有两个应用程序(将始终一起安装)共享首选项,其中一个只是一个在后台运行并需要使用首选项的服务(应该拥有首选项但只需要真正需要阅读它们) )另一个应用程序是一个前端UI应用程序,需要能够写入其他应用程序拥有的首选项文件.该服务将在后台执行(可能由首选项确定),UI将允许用户编辑首选项并查看服务中的一些信息.但是,它们将是不同的包/应用程序.
我尝试了这个教程,这让我非常了解如何在一个应用程序中拥有可以被另一个应用程序读取的首选项.本质上,我通过myContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);然后调用创建一个新的上下文myContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);然而,我无法从外部应用程序成功写入首选项 - (SharedPreferences.Editor).commit()返回false并且我在logcat中收到有关无法编辑的警告pref_name.xml.bak.
如何成功设置我的应用程序,以便它们都可以读取和写入相同的首选项文件(存储在其中一个的数据文件夹中)?