直奔主题吧,查阅了各种资料,最后实战发现 其实很简单,主要做法是:
在AndroidManefest.xml 文件中 添加
android:sharedUserId="com.example.test"
两个App的这个android:sharedUserId 设置为一样即可,剩下的就是读写了
第一步:获取 sp创建者的context
Context otherContext = createPackageContext("sp创建者的包名", Context.CONTEXT_IGNORE_SECURITY);
第二步:获取目标sp
模式可以设置为 Context.MODE_WORLD_READABLE -- 此处的模式和创建sp时保持一致
SharedPreferences sp = otherContext .getSharedPreferences("sp名称", Context.MODE_WORLD_READABLE);
第三步:获取具体值 或者 改写sp里面的值
例如获取一个String类型的值
String xxx= sp.getString("xxx", "");
改写一个String类型的值
sp.edit().putString("xxx", "").commit();