«

AndroidSharedpreference数据共享

时间:2024-3-2 17:09     作者:韩俊     分类: Android


一个应用访问另一个应用的数据。前提是被访问应用的数据必须是全局可见的。

步骤:

1、获取另一个应用的上下文

packageName是应用的包名

other=createPackageContext(packageName, CONTEXT_IGNORE_SECURITY);

2、获得SharedPreferences对象。


具体demo代码如下:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void onPhone(View v){

        Intent intent = new Intent(
                Intent.ACTION_CALL,
                Uri.parse("tel:"
                        +getOherAppXml("com.example.phonewrite") 
                                ));

        startActivity(intent);
        MainActivity.this.finish();
        System.exit(0);
    }

    private String getOherAppXml(String packageName){
        Context other=null;
        try {
            other=createPackageContext(packageName, CONTEXT_IGNORE_SECURITY);
            SharedPreferences preferences=other.getSharedPreferences("Config", other.MODE_WORLD_READABLE);

            return preferences.getString("phone", "13047220888");
        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;

    }

}

被访问应用的关键代码如下:

public class MainActivity extends ActionBarActivity {
private EditText mEditText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
mEditText=(EditText) findViewById(R.id.ed_write_phone);

    }

    public void onPhone(View v){
        SharedPreferences preferences=getSharedPreferences("Config",MODE_WORLD_READABLE);

        preferences.edit().putString("phone", mEditText.getText().toString().trim()).commit();
        Toast.makeText(MainActivity.this,"提交成功",0).show();

    }

}




标签: android

热门推荐