关于跨应用读取程序的SharedPreferences

来源:互联网 发布:php短信接口开发实例 编辑:程序博客网 时间:2024/06/05 13:33

  android中读取其他应用数据的使用比较多,最常见的就是ContentProvider,比如联系人。如果我们只需获取很少的值,比如获取手电筒开关状态的值,那么使用SharedPreferences显得方便易用,下面例子很简单,通过一个程序点击改变手电筒开关状态值,另一个程序获取状态值。

 

发送端代码 

package jihui.zhang;import android.os.Bundle;import android.app.Activity;import android.content.SharedPreferences;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private SharedPreferences.Editor editor;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button truebtn = (Button)findViewById(R.id.truebtn);        Button falsebtn = (Button)findViewById(R.id.falsebtn);        editor = getSharedPreferences("camera",MODE_WORLD_READABLE).edit();        truebtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubeditor.putBoolean("light_on", true);editor.commit();}                });        falsebtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubeditor.putBoolean("light_on", false);editor.commit();}                });    }    }

 

 


获取端代码

package jianhui.zhang;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.pm.PackageManager.NameNotFoundException;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        TextView text = (TextView)findViewById(R.id.text);        try {Context context = createPackageContext("jihui.zhang",Context.CONTEXT_IGNORE_SECURITY);SharedPreferences pref = context.getSharedPreferences("camera", Context.MODE_MULTI_PROCESS);boolean test = pref.getBoolean("light_on", false);text.setText("内容为" + test);} catch (NameNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}    }    }


 

 

原创粉丝点击