1
votes

Pourquoi le dossier n'est-il pas créé dans le stockage interne de certains appareils Android?

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.

  • Quel est le problème?
  • Une autorisation supplémentaire est-elle nécessaire pour l'API de niveau supérieur?

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?


2 commentaires

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 .


3 Réponses :


7
votes

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.


4 commentaires

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



2
votes

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


3 commentaires

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.



0
votes

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

Demande d'autorisation Android Marshmallow?


0 commentaires