当前位置: 代码迷 >> 综合 >> 访问别的应用的SharedPreference
  详细解决方案

访问别的应用的SharedPreference

热度:25   发布时间:2024-01-21 16:12:41.0
访问SharedPreferences中的数据代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("china", Context.MODE_PRIVATE);
//getString() 第二个参数为缺省值,如果 preference 中不存在该 key ,将返回缺省值
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);
如果访问其他应用中的Preference,前提条件是:该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。如:有个<package name>为cn.android.action的应用使用下面语句创建了preference。
getSharedPreferences("china", Context. MODE_WORLD_READABLE);
其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :
Context otherAppsContext = createPackageContext("cn.android.action", Context. CONTEXT_IGNORE_SECURITY );
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("itcast", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);
如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/china.xml”);//<package name>应替换成应用的包名