2010-12-30 2 views
0

J'ai deux applications. Elles doivent communiquer via un fichier. Je sais que je peux écrire un fichier sur Android en utilisant Context.openFileOutput et le passer MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE. Mais comment puis-je trouver le fichier dans une autre application?Comment je lis le fichier d'une autre application Android?


Désolé, j'ai trouvé la solution. Dans une autre application, vous avez juste besoin d'obtenir le contexte approprié, alors vous pouvez faire les mêmes choses. L'API est Context.createPackageContext.

+0

Voulez-vous dire les fichiers dans le dossier res ou dans les données? –

+1

Si vous avez trouvé une réponse, au lieu de mettre à jour la question, postez-la comme réponse. – ninjasense

Répondre

1

La solution est

dans le processus propriétaire

final SharedPreferences pref = getSharedPreferences("preferences", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE | Context.MODE_MULTI_PROCESS); 
final SharedPreferences.Editor edit = pref.edit(); 
edit.putInt(....) 
edit.commit(); 

dans d'autres processus

final Context remoteContext = createPackageContext(OWNER_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); 
final SharedPreferences pref = remoteContext.getSharedPreferences("preferences", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE | Context.MODE_MULTI_PROCESS); 
pref.getInt(...) 
+0

final Contexte remoteContext = getContext(). CreatePackageContext ("com.mygames", getContext(). CONTEXT_IGNORE_SECURITY); donne un message d'erreur Packagemanager.NameNotFoundException. Je m'attends à ce qu'un chemin de construction doit être donné quelque part pour le nom du paquet 'other process'. Cependant, vous ne saurez pas quel sera le chemin pour vos utilisateurs. est-il un moyen de contourner cette exeption? J'ai essayé de trouver un moyen pour une application de lire le fichier de préférences partagées d'un autre (du même éditeur) pendant un certain temps et n'ai pas trouvé la réponse même au débordement de la pile. – Androidcoder

Questions connexes