如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
try {
AContext =createPackageContext(A_PACKAGE_NAME,
Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
Log.e(TAG, "find package error!");
}
SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME,
Context.MODE_WORLD_READABLE);
sp.getInt(PREF_NAME, 0);
在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to /data/data/....PREFERENCES_NAME.XML.bak。
在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的,同时,两个应用要是同一个签名文件签名。
分享到:
相关推荐
通过`LiveDataSharedPreferences`库,可以将SharedPreference的值转换为`LiveData`对象,使得数据能在生命周期内自动更新并传递给UI。 ```java LiveDataSharedPreferences liveDataSharedPreferences = new ...
在Android开发中,SharedPreference是一种轻量级的数据存储机制,用于保存和读取小型的键值对数据。它非常适合用来存储应用的用户设置或者一些简单的持久化数据,比如开关状态、首选项等。在这个"android ...
此外,还可以使用`PreferenceManager.getDefaultSharedPreferences(Context)`来获取默认的SharedPreference实例,通常用于实现设置界面。 总之,SharedPreference是Android开发中常用的一种存储简单数据的方法,它...
ContentProvider是Android中用于在应用间共享数据的标准化接口。虽然创建和使用ContentProvider相对复杂,但它为其他应用提供了统一的访问接口。ContentProvider需要实现`UriMatcher`,`query()`, `insert()`, `...
4. **共享属性**:尽管名称中包含"Shared",但SharedPreference并非跨应用共享数据的方式,它仅限于单个应用内部使用。 在游戏保存的场景中,SharedPreference可以用来存储玩家的进度、设置、得分等信息。例如,你...
- **ContentProvider**:对于跨应用共享数据,可以使用`ContentProvider`,虽然使用较为复杂,但能实现更高级的数据共享功能。 - **SQLite**:如果需要存储结构化数据,如表格形式的数据,推荐使用SQLite数据库,它...
通过分析这份"Android应用源码之(游戏保存之SharedPreference)",你可以深入理解如何在实际项目中利用SharedPreference来实现游戏保存功能,提升用户体验。此外,还可以结合源码学习如何优雅地管理和组织存储数据,...
最大的挑战之一是管理多个进程之间的共享数据。 大多数解决方案依赖于一个进程可供另一个进程读取数据,这可能非常缓慢,并可能导致 ANR。 Harmony 是一个线程安全、进程安全、完整的实现。 它可以代替任何地方使用...
`ContentProvider` 是Android提供的一种机制,允许应用间安全地共享数据。本篇将详细讲解如何利用`ContentProvider`来共享`SharedPreferences`的值。 首先,理解`SharedPreferences`。它是Android系统提供的一种轻...
共享数据的持久化策略 `SharedPreferences`和`PreferenceActivity`都是持久化数据的手段,它们的数据保存在设备的私有数据目录下,不会因应用的退出而丢失。当用户更改设置后,`SharedPreferences`会立即保存更改...
Android 系统提供了三种方式来实现数据持久化(数据存储),即文件存储、SharedPreference 存储、数据库存储,而这三种方式只是程序内部共享与存储数据,要实现跨程序共享数据,就要使用 ContentProvider(内容提供...
如果要实现数据共享,正确的方式是使用ContentProvider。 SharedPreference SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息。其...
- 共享数据的关键在于,两个应用需要有相同的SharedPreference。这通常通过在AndroidManifest.xml中设置相同的android:sharedUserId属性来实现,使两个应用在同一个用户ID下运行,从而能访问彼此的SharedPreference...
**SharedPreference**是Android开发中的一个关键组件,用于在应用程序之间持久化轻量级的数据。它主要用于存储用户偏好设置或应用程序的状态数据,如开关状态、音量设定等。这些数据通常是以键值对的形式存在,且...
每个应用程序都有自己的SharedPreference实例,不会与其他应用共享。数据类型主要支持String、boolean、int、float和long。 在实现登录功能时,通常包括以下步骤: 1. **创建SharedPreferences对象**:在Activity...
这个库简化了React Native应用在Android和iOS之间共享数据的工作,无需深入学习每个平台的特定实现。它支持多种数据类型,并且提供了异步API,使得在JavaScript环境中处理数据更加方便。 总结起来,`...
SharedPreferences允许开发者在应用程序之间共享数据,这些数据存储为XML文件,并且是持久化的。这意味着即使应用程序被关闭或设备重启,数据也会被保留。每个应用程序都有自己的SharedPreferences空间,互不影响。 ...
在Android应用开发中,Shared Preferences 是一种轻量级的...总之,Android的Shared Preferences是开发者在处理轻量级数据存储时的一个重要工具,通过简单易用的API,可以方便地在应用的不同组件之间共享和持久化数据。