3 votes

Suppression d'images via adb - elles restent pourtant dans la galerie

J'essaie d'écrire un script pour tester un appareil photo pendant de longues périodes, et l'un des problèmes actuels est le fait qu'il manque d'espace lorsque des photos sont prises. Mon approche initiale est de supprimer la photo en utilisant adb après qu'elle ait été prise. Le problème est que, même après l'avoir supprimée de l'emplacement où elle est enregistrée, elle reste visible dans la galerie, et je suppose qu'elle prend de l'espace quelque part. Les propriétés qui lui sont associées (comme la largeur, la hauteur, les informations flash, etc.) sont toutes supprimées, sauf la taille.

Ce que je fais actuellement est de supprimer tous les fichiers dans le répertoire DCIM (où l'appareil photo enregistre les photos) après chaque prise de vue, en utilisant adb. De plus, lorsque j'effectue une recherche dans le téléphone à l'aide d'adb, je ne trouve rien de similaire aux photos nulle part dans la structure des fichiers.

Est-il possible de supprimer complètement les photos en utilisant adb ? Y a-t-il un cache où les images sont stockées quelque part ? La seule façon de supprimer complètement les photos du téléphone est soit de redémarrer, soit d'utiliser monkey runner pour supprimer les photos par des touches simulées dans la galerie (ce qui est fastidieux pour un grand nombre de photos).

2voto

Nick Pierpoint Points 7976

La raison pour laquelle les photos restent visibles dans la Galerie est que le MediaScanner d'Android est un peu faible à cet égard. Voici ce qui se passe : lorsqu'Android démarre, il exécute le MediaScanner, qui vérifie toutes les images, les sonneries et les fichiers audio, pour résumer, et garde un œil dessus. Ceci n'est fait qu'une fois au démarrage .

Vous pouvez contourner ce problème en démontant la carte SD, en toute sécurité (Paramètres > Stockage > Démonter la carte SD), ce qui prendra quelques secondes. Une fois la carte SD démontée, vous pouvez la retirer et la remettre en place, ce qui forcera le MediaScanner à s'exécuter à nouveau, et toutes les images que vous avez supprimées ne seront plus dans la galerie.

MediaScanner est un service qui agit comme un service de mise en cache dans la mesure où il met en cache tous les médias (images/audio). Sur certaines ROMs, il est possible de le forcer à s'exécuter à nouveau sans avoir à faire ce qui précède.

1voto

Thej Points 655

Essayez les solutions proposées dans ce poste . En bref, l'un de ces éléments peut déclencher le balayage des médias :

  1. Envoyer une émission Intention ACTION_MEDIA_MOUNTED . Notez qu'il est possible d'envoyer une intention par l'intermédiaire de ./adb shell am .
  2. Exécuter le Rescan Media application
  3. Renommer un fichier
  4. Prendre une photo via l'application Appareil photo
  5. Remontage de la carte SD
  6. Redémarrage de

0voto

Tublor Points 11

Bien que d'autres réponses aient donné des solutions de contournement intéressantes pour ce problème, la plupart d'entre elles semblent ne pas fonctionner correctement dans ICS. La seule méthode sûre pour supprimer toutes les photos était la suivante :

  1. Supprimer tous les fichiers du dossier DCIM
  2. Données claires pour la galerie
  3. Effacer les données pour le stockage des médias
  4. Tuer à la fois Gallery et Android.process.media

J'ai essayé de les intégrer dans un script, le problème est avec le 3 - car Media Storage ne donne pas son nom de processus, et en tant que tel, je ne peux pas effacer les données par 'adb shell pm clear processname' pour lui.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X