Enregistrement de fichiers publics dans le stockage interne
J'ai une application qui enregistre les fichiers téléchargés à partir d'un serveur. Ces fichiers ne sont pas privés de ma demande, et devraient être accessibles à d'autres applications. Je veux savoir quel serait le chemin d'accès correct pour enregistrer ces fichiers lorsque la carte SD est ABSENT. Pour la carte SD, il est bien connu de l'API -
getExternalStorageDirectory()
Pour l'application des données privées dans la mémoire interne n'est -
Context.getFilesDir()
Sur certains appareils, la mémoire interne est représenté par /emmc/.
Il sera vraiment utile si quelqu'un pourrait élaborer sur /emmc/. Je sais que c'est synonyme de la Mémoire intégrée et la carte de n'est pas présent dans tous les dispositifs. Mais est-il vraiment représentatif de la mémoire interne? Ou est-ce le troisième mémoire?
Dois-je enregistrer les fichiers à l'aide de openFileOutput()
avec MODE_WORLD_READABLE
?
source d'informationauteur Akshay
Vous devez vous connecter pour publier un commentaire.
/emmc/
peuvent exister sur certains appareils, et il peut être interne, mais il peut ne pas être accessibles pour les applications, et ce n'est certainement pas partie du kit SDK d'Android, à moins que ce qui arrive à être ce quegetExternalStorageDirectory()
retourne.Pas.
Demandez à votre fabricant de l'appareil.
Qu'il est impossible de répondre dans l'abstrait. Vous dites que vos fichiers "devraient être accessibles à d'autres applications", mais vous n'avez pas indiqué pourquoi vous attendez à aucune autre demande de soins un peu plus sur vos fichiers. D'autres demandes ne seront pas de la numérisation de vos répertoires pour les fichiers, au mieux, ils permettent aux utilisateurs de parcourir de stockage externe. La seule raison d'avoir un fichier qui est
MODE_WORLD_READABLE
est si votre demande sera le déclenchement d'une autre demande de faire quelque chose avec le fichier (par exemple,ACTION_VIEW
Intent
).Je réalise que c'est vieux et a accepté de répondre, mais je pense que la question est toujours d'actualité et qu'il y est un moyen de parvenir à ce que la personne veut.
Pour le paraphraser, je crois que le demandeur souhaite enregistrer un fichier, et de le rendre accessible (par exemple pour l'affichage) par d'autres applications, sans avoir à vous soucier de stockage externe (par exemple une permission supplémentaire et la possibilité que le stockage externe n'est pas présent).
Il s'avère que vous pouvez faire vos propres fichiers lisibles par d'autres applications.
La setReadable fait le code ci-dessus le travail pour moi - sans que la ligne de la visionneuse ne pouvais pas lire le fichier. Notez que setReadable opère sur l'ensemble du répertoire, de sorte que la meilleure solution est probablement de créer un nom de sous-répertoire "public" et de la placer vos fichiers dans.