Ma question est: est-il possible d'obtenir le chemin absolu d'une ressource (dans un sous-répertoire du dossier res /) sous Android?
La plupart des réponses que je vois à cette question sur Google suggèrent d'obtenir un descripteur de fichier, ce qui implique que ce n'est pas possible.
C'est ça?
EDIT: La raison pour laquelle je veux le faire est parce que j'écris des cours qui acceptent un chemin vers les médias et le jouent. Les tests seraient beaucoup plus faciles si je pouvais passer le chemin absolu d'une ressource.
Utilisez les chemins URI au lieu du chemin "absolu", voir ce message
Uri path = Uri.parse("Android.resource://com.segf4ult.test/" + R.drawable.icon);
Uri otherPath = Uri.parse("Android.resource://com.segf4ult.test/drawable/icon");
Ou utilisez openRawResource (R.id) pour ouvrir un inputStream, et utilisez-le de la même manière que vous utiliseriez un FileInputStream (en lecture seule)
Pas possible. Le dossier de ressources que vous voyez est compilé dans l'apk, et il peut même ne pas être stocké tel quel. (par exemple, ces fichiers xml de mise en page ne sont plus des fichiers xml une fois qu'ils sont compilés)
Deux solutions/contournements possibles pour votre situation:
En général, [~ # ~] non [~ # ~] . Comme cela a été répété plusieurs fois ici, vous devez y accéder via les ressources.
Cela dit, il existe des moyens de contourner ce problème:
/data/data/yourapp/
ou /tmp/
Dans tous les cas, vous testeriez une solution qui ne fonctionnera probablement pas sur la plupart des appareils. Je vous suggère de suivre les instructions du guide de développement: http://developer.Android.com/guide/topics/data/data-storage.html