Como posso compartilhar um arquivo SharedPreferences em dois aplicativos Android diferentes?

Eu tenho lutado com isso por um tempo. Basicamente, eu quero ter dois aplicativos (que sempre serão instalados juntos) compartilhar preferências, com um deles sendo apenas um serviço que é executado em segundo plano e precisa usar as preferências (deve possuir as preferências, mas apenasrealmente precisa lê-los) e o outro aplicativo é um aplicativo de interface de usuário de front-end que precisa ser capaz de gravar no arquivo de preferências de propriedade do outro aplicativo. O serviço fará as coisas em segundo plano (que podem ser determinadas pelas preferências) e a interface do usuário permitirá que o usuário edite as preferências e visualize algumas informações do serviço. No entanto, eles serão pacotes / aplicativos diferentes.

Eu tentei seguireste tutorial o que me deu uma boa idéia de como ter preferências em um aplicativo que pode ser lido por outro. Essencialmente, eu crio um novo contexto atravésmyContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); e depois liguemyContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); No entanto, não consigo gravar com êxito nas preferências do aplicativo externo - (SharedPreferences.Editor) .commit () retorna false e recebo um aviso no logcat sobre a impossibilidade de editar pref_name.xml.bak.

Como posso configurar meus aplicativos com êxito para que ambos possam ler e gravar no mesmo arquivo de preferências (que é armazenado na pasta de dados de um deles)?

questionAnswers(2)

yourAnswerToTheQuestion