首页 > 代码库 > SharedPreferences之不同应用的数据共享

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,允许其他应用读取,实现共享。

SharedPreferences之不同应用的数据共享