SharedPreferences之不同应用的数据共享

上一篇文章提到了SharedPreferences,现在讲一下,如何让不同的应用程序共享SharedPreferences保存的数据。其实

比较简单,只需要在调用目标程序的SharedPreferences的Activity中这样操作:

假设上一个应用名为:com.up.SharedPreferencesTest

	Context otherAppsContext = null;
			try {
				otherAppsContext = createPackageContext("<span style="font-size:18px;">com.up.</span><span style="font-size:18px;">SharedPreferencesTest</span>", Context.CONTEXT_IGNORE_SECURITY);
			} catch (NameNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			service=new PreferencesService(otherAppsContext);
			 Map<String, String> params = null;
			 try {
				params = service.getPreferences();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			String pathName = params.get("name");

本代码请结合上篇博文,一起看:http://blog.csdn.net/gisredevelopment/article/details/39700551

另外,要注意SharedPreferences的四种操作模式:

Context.MODE_PRIVATE

Context.MODE_APPEND

Context.MODE_WORLD_READABLE

Context.MODE_WORLD_WRITEABLE

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

我们这里用的是MODE_WORLD_READABLE,允许其他应用读取,实现共享。

时间: 2024-08-02 19:09:21

SharedPreferences之不同应用的数据共享的相关文章

通过SharedPreferences实现进程间数据共享的问题详解

??之前为了解决应用的内存压力,在同一个应用中使用了多进程,但在程序自测的过程中发现不同进程之间的SharedPreferences数据不能共享,但应用内很多数据都是通过SharedPreferences来保存的,如果改成其它多进程通信的方式改动比较大.通过查看源码发现,在API Level>=11即Android 3.0可以通过Context.MODE_MULTI_PROCESS属性来实现SharedPreferences多进程共享,具体使用方式如下: SharedPreferences sp

Android中不同应用间实现SharedPreferences数据共享

在Android中使用下面的Code可以实现两个应用之间的SharedPreferences数据共享,但前提是要保证两个应用的android:sharedUserId要相同 Context context = null; try { context=createPackageContext("com.android.providers.downloads",Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException

处女男学Android(十三)---Android 轻量级数据存储之SharedPreferences

一.前言 转载请标明出处:http://blog.csdn.net/wlwlwlwl015/article/details/42437007 初学Android的时候在Activity之间传值我都是用Intent+Bundle这种模式去实现的,刚开始觉得没什么,后来渐渐发现了弊端,就是说只能逐层传递,当我的好几个Activity都需要从一个Activity中取数据的时候,这样就显得相当局限了,传来传去的即麻烦,又不合理,后来就想在Android中有没有web开发中类似于Session的东西,只要

Android SharedPreferences存储

一 概念 SharedPreferences存储方式是Android中存储轻量级数据的一种方式.SharedPreferences存储主要用来存储一些简单的配置信息,内部以Map方式进行存储,因此需要使用键值对提交和保存数据,保存的数据以xml格式存放在本地的/data/data/<package name>/shares_prefs文件夹下. 二 特点 1,        使用简单,便于存储轻量级的数据: 2,        只支持Java基本数据类型,不支持自定义数据类型: 3,     

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Pro

多个APK之间简单数据共享

在APK的manifest节点中保证其  android:sharedUserId="hello.miles"  保持一致,名称可以自定义 // 创建共享数据的APK 其manifest包名为com.miles.sharedata SharedPreferences sp = Context.getSharedPreferences(String name, int mode) Editor editor = sp.edit() // 存值 editor.putBoolean(&quo

ContentProvider如何实现APP之间的数据共享

ContentProvider 认识: Content providers负责管理结构化数据的访问,Content providers封装数据并且提供一套定义数据安全的机制. Content providers是一套在不同进程间进行数据访问的接口. Content providers为数据跨进程访问提供了一套安全的访问机制,对数据组织和安全访问提供了可靠的保证. Content Providers的使用的: 通过Content Providers访问数据时,在应用程序的上下文(Context)中

Android数据存储(一)----SharedPreferences详解

一.Android数据的存储方式: Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File:此外还有一种网络存储.由于Android系统中,数据基本都是私有的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider. 在Android中,可以使用几种方式实现数据持久化: Shared Preferences:除SQLite数据库外,另一种常用的数据

如何正确的使用SharedPreferences?

这是我最近碰到过的一个问题,之前并没有一个清晰的认识!唯一的印象是,SharedPreferences 是可以用来存取数据.直到前些日子,在360漏洞扫描应用后,才意识到这个问题,如何正确的使用SharedPreferences呢?以下是360漏洞扫描的信息: 关于SharedPreferences顺便再复习一下: SharedPreferences 是Android 中的内置API,它允许我们存取键值对形式的基础类型数据,像:boolean,float ,int , long , string