Es sencillo recuperar datos de preferencias compartidas de la tienda de una aplicación a otra.
Paso 1: agregue el mismo android:sharedUserId="android.uid.shared"
en los archivos de manifiesto de ambas aplicaciones.
Paso 2: Tienda Básica Application1
SharedPreferences preferences = context.getSharedPreferences("token_id", Context.MODE_WORLD_READABLE);
Editor editor = preferences.edit();
editor.putString("shared_token", encryptedValue);
Log.e("aaa *** shared_token : ", encryptedValue.toString());
editor.commit();
Paso 3: Obtener valor De application2
Context con = null;
try {
con = createPackageContext("application2 package name", Context.CONTEXT_IGNORE_SECURITY);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
try {
if (con != null) {
SharedPreferences pref = con.getSharedPreferences(
"token_id", Context.MODE_WORLD_READABLE);
String data = pref.getString("shared_token", "");
Log.d("msg", "Other App Data: " + data);
} else {
Log.d("msg", "Other App Data: Context null");
}
} catch (Exception e) {
e.printStackTrace();
}
Usted lo hace en la otra aplicación (la aplicación que posee las preferencias).Que de su pregunta no parece que tenga acceso, ya que si lo hiciera, conocería las claves disponibles. Pero lo haces de una manera similar a la anterior con mode_world_readable. es realmente una muy mala forma de hacer las cosas, y si desea compartir datos, debe seguir la sugerencia de commonsware – jkhouw1
; la aplicación necesita tener el modo WORLD_READABLE. ¿Quizás eso es lo que quiso decir y lo tipeó incorrectamente? WOLRD_WRITABLE significa que cualquiera puede escribir en él. – jkhouw1
Lo probé pero no puedo leer el valor de la otra aplicación –