不同APP通過SharedPreferences傳遞資料(共享資料)
阿新 • • 發佈:2019-02-18
1、寫入資料APP
[java] view plain copy print?- publicclass MainActivity extends Activity {
- private SharedPreferences putPreferences;
- private Editor putEditor;
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 將伺服器資訊寫入serverInfo.xml
- findViewById(R.id.buttonPut).setOnClickListener( new View.OnClickListener() {
- @Override
- publicvoid onClick(View v) {
- // TODO Auto-generated method stub
- putPreferences = getSharedPreferences("serverInfo", Context.MODE_WORLD_READABLE);
- putEditor = putPreferences.edit();
- putEditor.putString("serverIP", "192.168.1.102");
- putEditor.putString("password", "123456");
- putEditor.commit();
- Toast.makeText(MainActivity.this,"伺服器資訊成功寫入serverInfo.xml", Toast.LENGTH_LONG).show();
- }
- });
- }
- @Override
- publicboolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- returntrue;
- }
- }
public class MainActivity extends Activity {
private SharedPreferences putPreferences;
private Editor putEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 將伺服器資訊寫入serverInfo.xml
findViewById(R.id.buttonPut).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
putPreferences = getSharedPreferences("serverInfo", Context.MODE_WORLD_READABLE);
putEditor = putPreferences.edit();
putEditor.putString("serverIP", "192.168.1.102");
putEditor.putString("password", "123456");
putEditor.commit();
Toast.makeText(MainActivity.this,"伺服器資訊成功寫入serverInfo.xml", Toast.LENGTH_LONG).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2、獲取資料APP
[java] view plain copy print?- publicclass MainActivity extends Activity {
- private SharedPreferences getPreferences;
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //從serverInfo.xml獲取伺服器資訊
- findViewById(R.id.buttonGet).setOnClickListener(new View.OnClickListener() {
- @Override
- publicvoid onClick(View v) {
- // TODO Auto-generated method stub
- try {
- Context context=createPackageContext("com.example.putprefapp", Context.CONTEXT_IGNORE_SECURITY);
- getPreferences=context.getSharedPreferences("serverInfo", MODE_WORLD_READABLE);
- String serverIP=getPreferences.getString("serverIP","");
- String serverPwd=getPreferences.getString("password", "");
- Toast.makeText(MainActivity.this, "伺服器資訊如下:IP地址:" +serverIP+"; 密碼:"+serverPwd, Toast.LENGTH_LONG).show();
- } catch (NameNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- }
- @Override
- publicboolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- returntrue;
- }
- }
public class MainActivity extends Activity {
private SharedPreferences getPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//從serverInfo.xml獲取伺服器資訊
findViewById(R.id.buttonGet).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
Context context=createPackageContext("com.example.putprefapp", Context.CONTEXT_IGNORE_SECURITY);
getPreferences=context.getSharedPreferences("serverInfo", MODE_WORLD_READABLE);
String serverIP=getPreferences.getString("serverIP","");
String serverPwd=getPreferences.getString("password", "");
Toast.makeText(MainActivity.this, "伺服器資訊如下:IP地址:" +serverIP+"; 密碼:"+serverPwd, Toast.LENGTH_LONG).show();
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
3、關於android:sharedUserId
上面的兩個工程中並沒有對Android:sharedUserId屬性進行設定。這個屬性是在查資料時看到的:意思是說,在manifest.xml裡面將兩個應用程式的android:sharedUserId屬性設為相同的就可以對SharedPreferences檔案進行寫。(此處並沒有驗證)