上一篇文章提到了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");
另外,要注意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,允许其他应用读取,实现共享。
原文地址:http://blog.csdn.net/gisredevelopment/article/details/39700875