跨应用读取SharedPreference数据

来源:互联网 发布:匈牙利语翻译软件 编辑:程序博客网 时间:2024/06/11 01:59

不废话,简单粗暴上代码

应用A:

package com.example.atest_sp;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {    private EditText et;    private Button btn;    public static final String FILE_NAME = "_filename";    public static final String KEY = "_key";    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et = (EditText) findViewById(R.id.et);        btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                SharedPreferences share = getSharedPreferences(FILE_NAME, Context.MODE_WORLD_READABLE);                share.edit().putString(KEY, et.getText().toString()).commit();            }        });    }}

应用B:

package com.example.btest_sp;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.pm.PackageManager.NameNotFoundException;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {    private TextView tv;    private Button btn;    public static final String A_PKG_NAME = "com.example.atest_sp";    public static final String FILE_NAME = "_filename";    public static final String KEY = "_key";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);        btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                try {                    SharedPreferences share = getTargetContext().getSharedPreferences(FILE_NAME,                            Context.MODE_WORLD_READABLE | Context.MODE_MULTI_PROCESS);                    String afterBooleanValue = share.getString(KEY, "");                    tv.setText(afterBooleanValue + "");                } catch (NameNotFoundException e) {                    e.printStackTrace();                    tv.setText("没有找到该包名");                }            }        });    }    private Context getTargetContext() throws NameNotFoundException {        return createPackageContext(A_PKG_NAME, Context.CONTEXT_IGNORE_SECURITY);    }}


0 0