¿Cómo puedo compartir un archivo de SharedPreferences en dos aplicaciones de Android diferentes?

He estado luchando con esto por un tiempo. Básicamente, quiero que dos aplicaciones (que siempre se instalarán juntas) compartan las preferencias, una de las cuales es solo un servicio que se ejecuta en segundo plano y necesita usar las preferencias (debe poseer las preferencias pero soloDe Verdad necesita leerlos) y la otra aplicación es una aplicación de interfaz de usuario que necesita poder escribir en el archivo de preferencias que posee la otra aplicación. El servicio hará cosas en segundo plano (lo que puede estar determinado por las preferencias) y la interfaz de usuario permitirá al usuario editar las preferencias y ver cierta información del servicio. Sin embargo, serán diferentes paquetes / aplicaciones.

Traté de seguireste tutorial lo que me dio una buena idea de cómo tener preferencias en una aplicación que puede ser leída por otra. Esencialmente, creo un nuevo contexto a través demyContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); y luego llamarmyContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); Sin embargo, no puedo escribir correctamente a las preferencias desde la aplicación externa - (SharedPreferences.Editor) .commit () devuelve false y recibo una advertencia en logcat sobre la imposibilidad de editar pref_name.xml.bak.

¿Cómo puedo configurar con éxito mis aplicaciones para que ambas puedan leer y escribir en el mismo archivo de preferencias (que está almacenado en la carpeta de datos de una de ellas)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta