读取其他程序的SharedPreferences

本文介绍如何在Android应用间共享SharedPreferences数据。需设置正确的访问模式,并掌握目标应用的包名及SharedPreferences名称。文章详细展示了共享者与访问者的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--------------------------------------------

读、写其他应用的SharedPreferences

3个访问必需条件
共享者需要将SharedPreferences的访问模式设置为全局读或写
访问者需要知道共享者的包名称和SharedPreferences名称
访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据

-------------------------------------------

///////////共享者

public SharedPreferences SP;

   Editoreditor;

//名称,操作模式(权限)

SP= mContext.getSharedPreferences("testSP",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);  

//写入数据并保存

editor= SP.edit();

editor.putBoolean("value",true);//写入

editor.putString("str_value","test");//还可以是int,string等类型

editor.commit();//保存

//获取数据

boolean b = SP.getBoolean("value",false);

 ----------------------------------------------------------------

//////////访问者

Context myContext=null;//生成全局变量

   SharedPreferencesperfer;

   SharedPreferences.Editoreditor;

 

////如果访问者与共享者在同一包中

//Prefer = mContext.getSharedPreferences("testSP",  

//Context.MODE_WORLD_READABLE+ Context.MODE_WORLD_WRITEABLE);

 

////跨包访问

try {

//注意这句要进行异常处理,访问者需要知道共享者的包名称myContext=createPackageContext("com.tan.test",Context.CONTEXT_IGNORE_SECURITY);

        } catch (NameNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

//第一个参数是得到那个文件,第二个参数是可以对文件可读可写

      Prefer = myContext.getSharedPreferences("testSP", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);

////获取数据

boolean b = Prefer.getBoolean("value",false);

////////////修改数据

        editor=perfer.edit();//创建可编辑对象

        editor.putBoolean("value",true);//写入内容

       editor.commit();//每次写完要注意保存


-------------------以下转载原文-------------------------

读取其他程序的SharedPreferences一般步骤:
通过CreatPackageContext()创建其他程序对应的Context
通过这个Context的getSharedPreferences()方法获取对应的SharedPreferences对象
如果需要写入数据,调用SharedPreferences的edit()方法获取对应的Editor对象
3个访问必需条件
共享者需要将SharedPreferences的访问模式设置为全局读或写
访问者需要知道共享者的包名称和SharedPreferences名称
访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据

读、写其他应用的SharedPreferences
 Context myContext=null;//生成全局变量
SharedPreferences perfer;
SharedPreferences.Editor editor;

myContext=createPackageContext("cn.edu.zwu.tel",Context.CONTEXT_IGNORE_SECURITY);//注意这句要进行异常处理,访问者需要知道共享者的包名称
perfer=myContext.getSharedPreferences("lgs000", Context.MODE_WORLD_READABLE+ Context.MODE_WORLD_WRITEABLE); //第一个参数是得到那个文件,第二个参数是可以对文件可读可写
editor=perfer.edit();//创建可编辑对象

perfer.getString("name",null)//读显示内容

editor.putString("name", zh);//写入内容
editor.commit();//每次写完要注意保存



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值