Uri du contenu://media/externe/le fichier n'existe pas pour certains appareils
J'ai un problème avec certains appareils. Je ne peux pas le reproduire sur n'importe quel appareil mais je n'ai pas beaucoup de rapports d'incidents signalés par certains utilisateurs.
C'est cette exception:
java.lang.IllegalArgumentException: Unknown URL content://media/external/file
at android.content.ContentResolver.delete(ContentResolver.java:1024)
J'utilise ceci:
contexte.getContentResolver().supprimer(MediaStore.Les fichiers.getContentUri("externe"),
MediaStore.Les fichiers.FileColumns.DONNÉES + "=?", new String[] { path });
Après que j'appelle MediaScannerConnection.scanFile()
sur le fichier du répertoire parent, car il est à mon humble avis la plus fonctionnelle façon de comment informer MediaScanner à propos de la suppression de fichier et comment l'actualisation de la MTP de contenu. J'ai essayé tous les autres moyens que j'ai trouvé ici sur stackoverflow (par exempleAndroid Comment utiliser MediaScannerConnection scanFile) mais rien ne fonctionne comme cela.
Btw. Je l'utilise seulement pour les Api 11 et les plus récents. De stockage externe est certainement monté.
J'ai ces questions:
1. Savez-vous quelle en est la raison de cette exception se produit ? Je ne veux pas ignorer l'exception. Et je ne veux pas supprimer ce code lorsqu'il fonctionne très bien pour la plupart des appareils.
2. Savez-vous quelque nouvelle méthode fiable comment informer MediaScanner et comment actualiser immédiatement le contenu de MTP quand un fichier est supprimé ?
testMediaScanner
dans la CTS. Savez-vous quels types d'appareils sont s'écraser? Est-il limité à un fabricant/modèle/système d'exploitation?stackoverflow.com/questions/21417211/...
OriginalL'auteur Bhiefer | 2014-01-28
Vous devez vous connecter pour publier un commentaire.
Très probablement, il a à voir avec la mise en cache sur l'appareil. La capture de l'exception et de l'ignorer, c'est pas gentil, mais mon problème a été résolu et il semble fonctionner.
OriginalL'auteur Günther Jena