Comment puis-je partager un SharedPreferences fichier à travers deux applications android?

J'ai eu du mal avec ça pendant un moment. En gros, je veux avoir deux applications (qui sera toujours installé) partager les préférences, avec l'un d'eux étant simplement un service qui s'exécute en arrière-plan et les besoins d'utiliser les préférences (devrait propres préférences, mais seulement vraiment besoin de les lire) et l'application d'autres cours d'un front-end de l'INTERFACE utilisateur d'application qui doit être en mesure d'écrire dans le fichier de préférences de la propriété par l'application d'autres. Le service sera de faire les choses dans l'arrière-plan (ce qui peut être déterminé par les préférences) et l'INTERFACE utilisateur permet à l'utilisateur de modifier les préférences et afficher des informations à partir du service. Cependant, ils seront différents packages/apps.

J'ai essayé de suivre ce tutoriel qui m'a donné une assez bonne idée de comment avoir des préférences dans une application qui peut être lu par un autre. Essentiellement, je crée un nouveau contexte à travers myContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); et ensuite appeler myContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); Cependant, je ne peux pas écrire dans les préférences avec succès à partir de l'extérieur de l'app - (SharedPreferences.De l'éditeur).commit() renvoie la valeur false et je reçois un avertissement dans le logcat au sujet d'être dans l'impossibilité de modifier pref_name.xml.bak.

Comment puis-je configurer correctement mon applications de sorte que les deux d'entre eux peuvent lire et écrire dans le même fichier de préférences (qui est stocké dans le dossier de données de l'un d'eux)?

  • Pourquoi, lorsque vous dites que ce sont toujours installé, faut-il être deux applications différentes? Semble que beaucoup de maux de tête, donc je suppose que vous êtes représenter un avantage, mais je me demande si il pourrait y avoir une façon d'y parvenir sans avoir d'autres applications.
  • Je voulais être en mesure d'installer des applications, définir les préférences, puis désinstaller l'interface de l'INTERFACE utilisateur, mais laissez-le service de continuer à aller dans le fond. Cela me permet aussi de mettre à niveau une application sans avoir à ré-installer les deux. Ce n'est certainement pas nécessaire (et je peut même pas l'utiliser), mais c'était une de mes idées pour la mise en œuvre de ce la façon dont je l'ai conçu.
InformationsquelleAutor matt5784 | 2012-06-14