J'ai créé un dossier dans la mémoire interne pour stocker des fichiers. Mais le problème est que le dossier n'est pas créé sur certains appareils Android. Le dossier est créé dans les appareils Lollipop mais pas dans Oreo et Nougat.
Le code pour créer un dossier dans la mémoire interne
File f1 = new File(Environment.getExternalStorageDirectory(), Constants.STORED_FOLDER); if (!f1.exists()) { f1.mkdirs(); } Log.e("check_path", "" + f1.getAbsolutePath());
De plus, j'ai une autre question sur la façon de rendre le dossier visible dans la galerie.
Ce n'est pas visible dans la galerie? Comment résoudre ce problème?
3 Réponses :
Le dossier est créé dans les appareils lollipop mais pas dans oreo et nougat. Quel est le problème?
Depuis Android 6.0 (si ma mémoire est bonne), de nombreuses autorisations doivent être attribuées dynamiquement (lors de l'exécution). Vous devez obtenir votre autorisation lors de l'exécution .
Une autorisation supplémentaire est-elle nécessaire pour l'API de niveau supérieur?
Les autorisations de base sont WRITE_EXTERNAL_STORAGE, mais vous devez non seulement le déclarer dans AndroidManifest.xml, mais également au moment de l'exécution.
J'ai également une autre question sur la façon de rendre le dossier visible dans la galerie. Ce n'est pas visible dans la galerie? Comment résoudre ces problèmes?
Si vous parlez de la galerie de photos, vous devrez peut-être attendre que le processus multimédia scanne toute la sdcard pour que votre dossier (qui doit contenir quelques photos) soit ajouté à la galerie.
Une question générée à partir de ma réponse: est-il possible pour l'application d'ajouter de force son dossier dans la galerie?
Le dossier que j'ai créé dans la mémoire interne n'est pas visible dans la galerie. Donc, chaque fois que je veux visiter l'explorateur de fichiers pour vérifier le dossier. Comment cela rend-il visible dans la galerie?
@Neetha Voir la réponse de Dhiraj ci-dessous.
Merci. J'ai fait la création du dossier comme vous l'avez recommandé. Et je le rends également visible dans la galerie en utilisant MediaScannerConnection sous Android
Pour afficher votre dossier immédiatement, vous devez envoyer une diffusion
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
ce code indiquera à l'application de la galerie que quelque chose a été ajouté, veuillez donc réanalyser le contenu multimédia maintenant
Cette réponse est ajoutée à Geno Chen Answer
Pouvez-vous me dire où je veux placer ce code? Aussi qu'est-ce que "file: //" ici? Est-ce le nom de notre dossier?
@Neetha je pense, placez-le là où après avoir mis les photos dans ce dossier. "file: //" est un schéma par défaut pour le fichier, spécifié par le format URI. Vous pouvez réécrire manuellement le paramètre dans Uri.parse ()
dans votre répertoire photo.
vous devez ajouter une autorisation de demande avant de créer un dossier. voir les liens ci-dessous: https://developer.android.com/training/permissions/requesting p >
Vous devrez demander l'autorisation de l'utilisateur lors de l'exécution. developer.android.com/training/permissions/requesting
il se peut que vous ne cibliez pas l'autorisation d'exécution pour les versions oreo et nougat .