J'enregistre une image sur la carte SD et elle n'apparaît pas dans l'application Galerie tant que je n'ai pas retiré la carte SD et l'ai renvoyée.
Avez-vous une idée de pourquoi?
On dirait que l'application Galerie a un cache qui n'est pas mis à jour lors de l'enregistrement du fichier ...
En fait, je souhaite également ouvrir l'image qui vient d'être enregistrée dans l'application Galerie et je n'ai aucun succès avec
cela, c'est ma question à propos de ce problème.
Réponses:
Le système scanne la carte SD lorsqu'elle est montée pour trouver de nouveaux fichiers image (et autres). Si vous ajoutez un fichier par programme, vous pouvez utiliser cette classe:
http://developer.android.com/reference/android/media/MediaScannerConnection.html
la source
Une solution plus simple consiste à utiliser la méthode de commodité statique scanFile () :
où
this
est votre activité (ou quel que soit le contexte), le type mime n'est nécessaire que si vous utilisez des extensions de fichier non standard et lenull
est pour le rappel optionnel (dont nous n'avons pas besoin dans un cas aussi simple).la source
Ma réponse à la question initiale et à toute autre personne susceptible d'avoir ce problème:
J'avais le même problème, les images dans mon application que les personnes enregistrées sur la carte SD n'apparaissaient pas immédiatement dans leur galerie. Après quelques recherches, j'ai trouvé cette ligne de code insérée après mon code `` enregistrer sur la carte SD '' qui a résolu le problème:
la source
Vous pouvez également ajouter une image à la galerie multimédia par intention, jetez un œil à l'exemple de code pour voir comment cela est fait:
la source
Uri
mais le problème est que l'image insérée ne s'affiche pas dans la galerie. J'ai vérifié à la fois au début et à la fin de la galerie. Pouvez-vous suggérer une méthode pour que l'image insérée s'affiche immédiatement dans la galerie?Actualisation de la galerie, y compris Android KITKAT
la source
Voici le code de MediaScannerConnection:
newfile est l'objet File de votre nouveau fichier / enregistré.
la source
MyMediaConnectorClient
...il y a une application dans l'émulateur qui dit - 'Dev Tools'
cliquez dessus et sélectionnez 'Balayage média'. toutes les images seront numérisées
la source
Laissez votre activité implémenter 'MediaScannerConnectionClient' et ajoutez ceci à votre activité:
la source
Uri
de l'image, par exemple:content://media/external/images/media/1231778
ce travail avec moi
la source
la source
Ici, je partage du code qui peut charger une image sous forme de bitmap et enregistrer cette image sur la galerie sdcard dans le dossier du nom de l'application. Vous devez suivre ces étapes
la source
Ne semble pas fonctionner sur KITKAT. Il lève une exception de refus d'autorisation et plante l'application. Donc pour cela, j'ai fait ce qui suit,
J'espère que ça aide.
la source
Utilisez ceci après avoir enregistré l'image
la source
Mon code pour MyMediaConnectorClient:
la source
Vous devez accorder des autorisations à l'application Galerie. Appuyez simplement longuement sur l'icône de l'application de la galerie dans l'écran d'accueil et appuyez sur `` INFO APP '' qui apparaît en haut de l'écran. Cela affichera les paramètres de l'application de la galerie. Maintenant, allez dans l'onglet Permissions et activez le stockage, les autorisations de la caméra en le basculant. Maintenant, accédez à votre application de galerie native et vous obtiendrez vos images enregistrées.
la source
Cela résoudra également votre problème si votre image dans la galerie ne s'affiche pas à la place, elle pourrait afficher une image bitmap de type 404 au milieu. s'il vous plaît ajouter les balises qui sont dans mon code avec votre image car il doit y avoir des méta-données afin d'afficher l'image dans la galerie.
la source
Essayez celui-ci, il diffusera sur une nouvelle image créée, afin que votre image soit visible. à l'intérieur d'une galerie. photoFile replace par le chemin de fichier réel de l'image nouvellement créée
la source