[英]Send data between two differents application using SharedPreferences
我在Android中有兩個不同的應用程序。 我需要將數據從一個發送到另一個。 第一個是Activity,我將這個數據值放在sharedpreferences文件中:
SharedPreferences selector;
selector = getSharedPreferences("tecnologia", Context.MODE_WORLD_READABLE);
Editor editor = selector.edit();
select = (RadioButton) findViewById(opciones.getCheckedRadioButtonId());
switch (select.getId()) {
case R.id.radio0:
editor.putString("opcion", "US");
editor.commit();
break;
case R.id.radio1:
editor.putString("opcion", "UWB");
editor.commit();
break;
}
Intent i = new Intent(this, ServiceConexion.class);
startActivity(i);
finish();
在我啟動的第二個活動中,我檢查此文件並且它是正確的。 然后我打電話給遠程服務員。
在第二項服務(第二個項目)中,我讀取了此文件:
try {
Context con = createPackageContext(
"org.gradiant.sistole.locdisplay",
0);
SharedPreferences configuracion;
configuracion = con.getSharedPreferences("tecnologia",
MODE_PRIVATE);
select = configuracion.getString("opcion", "00");
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但並非總是具有正確的價值。 為什么?
您無法訪問其他application data
。 相反,您可以這樣做。在sd card
或任何location
創建文件,然后在兩個應用程序中都可以訪問它。
MODE_PRIVATE
說它對那個應用程序是私有的,其他應用程序不能訪問它。 您如何通過兩種方式實現它:
另一個答案說,在SD卡中創建一個文件。 但這很危險,因為任何其他應用程序都可以讀取它。
在請求數據的應用程序中使用startActivityForResult(intent,requestCode)
,在另一個應用程序中setResult
。
PS :據我了解,它們都是您的應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.