2012-03-02 134 views
1

我使用PreferenceActivity让Android为我的应用程序处理一些持久性键/值对。Android偏好设置 - 如何共享共享?

按照Android Preference docs

注意保存的喜好设置只能由创建它们的应用程序。

然而,当进一步研究喜好的安全和权限方面,我遇到类似这样的问题之一:

Android: Retrieving shared preferences of other application

,其中一些用户说的喜好可以做出世界可读和世界可写,并且他们能够成功地跨应用程序访问它们。

所以我的问题是:

都是首跨应用程序不可分割不可访问或做我必须采取预防措施,使他们如此?

注:我不是想使用偏好的应用程序之间共享数据。恰恰相反 - 我想知道,我的用户设置的任何偏好都是安全的,不受其他应用程序的检查/更改。

+0

http://stackoverflow.com/questions/4787785/can-sharedpreferences-be-shared-among-different-android-applications看到这个答案 – Shruti 2012-03-02 10:00:49

回答

0

有与你当你创建它们定义共享偏好相关联的模式。 例如,你可以让他们为“世界读”或“可写”,如果你希望你的设备上的应用程序的其余部分要注意他们。 因此,您可以使用自己的标志来调整您创建

2

从上面的答案和注释共享偏好的透明度,它看起来对我来说,在这个问题上的Android开发者文档是有点误导。

我甚至发现了另一个地方,开发人员文件明确规定,设置而无法访问各应用程式:

(请注意,这是不可能跨应用程序包共享设置数据 - 为您需要内容提供商)

参考以上报价在这里:!http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState

但从@shruti和@拉曼巴蒂亚响应(谢谢你们)都支持的事实: t设置可以配置为跨应用程序共享,就像问题中引用的SO查询一样。

的硬道理是找到这个SO查询:Difference between getDefaultSharedPreferences and getSharedPreferences展示了如何将其作为默认共享偏好文件初始配置为私有。

感谢所有。答案是,该文档被误导在喜好可以强制转换是跨应用程序共享,但PreferenceActivity会默认创建一个安全的共享偏好只从起源应用程序的组件文件中看到。