Dois-je déclarer les deux WRITE_EXTERNAL_STORAGE et READ_EXTERNAL_STORAGE?
Suffit-il de déclarer <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
ou dois-je aussi déclarer <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
? La Javadoc omettre cette information importante.
- Je suis assez sûr aucune autorisation n'est jamais accordée automatiquement
- Vous n'avez pas à définir l'autorisation de lecture. Essayez
BitmapFactory.decodeStream()
surFileInputStream
- A écrit une réponse, mais maintenant je me souviens clairement l'une de mes applications où je n'ai jamais besoin de l'autorisation de lecture.
- En fait, la documentation indique clairement que l'autorisation d'écriture implique l'autorisation de lecture ainsi.
InformationsquelleAutor Jeff Axelrod | 2012-08-13
Vous devez vous connecter pour publier un commentaire.
READ_EXTERNAL_STORAGE
existe seulement en tant que de Jelly Bean (Niveau 16). Selon les docs, toutes les demandes de Jelly Bean avoir cette autorisation, même sans le déclarer:Donc, vous devez déclarer la compatibilité future, mais cela pourrait ne pas être la source de votre problème, sauf si vous utilisez un Jelly Bean téléphone et définir l'option développeur "Protéger de stockage USB" option.
Il est préférable d'être explicite et de déclarer les deux autorisations, mais en déclarant seulement
android.permission.WRITE_EXTERNAL_STORAGE
ajoutera automatiquementandroid.permission.READ_EXTERNAL_STORAGE
à votre APK au moment de la construction.Vous pouvez utiliser la commande
aapt dump badging
sur un APK de voir que Android considère l'utilisation de l'autorisation d'écrire à implique que vous voulez aussi avoir l'autorisation de lecture.Voici une partie de la sortie de aapt pour un APK de la mine où j'ai déclaré seulement
WRITE_EXTERNAL_STORAGE
dans mon manifeste: