Le mediaserver de mon Android 6.0.1 stock et rooté (fonctionnant sur Nexus 6) ne détecte pas les nouveaux fichiers créés ou déplacés dans /sdcard en utilisant adb. Il ne détecte pas jusqu'à ce que je fasse un soft/full reboot ce qui est inacceptable.
Je suis capable de lancer manuellement mediaserver en utilisant la ligne de commande pour recommencer le balayage des fichiers. # et je veux que cela soit fait automatiquement et immédiatement dès qu'un nouveau fichier est créé sous /sdcard . Pour l'instant, je fais exécuter le médiateur par Tasker chaque fois que le câble USB est débranché. *
Le choix évident ici semble être une application d'automatisation dont j'ai essayé Tasker et Automatiser Les deux n'ont pas réussi à détecter les nouveaux fichiers, en particulier sous /sdcard/Music, lorsqu'ils ont été créés par adb. Cependant, si une application créait des fichiers dans n'importe quel répertoire sous /sdcard ces deux applications ont immédiatement détecté les changements. J'ai aussi essayé de pousser des fichiers vers /storage/emulated/0/ au lieu de /sdcard/ et fait les changements correspondants dans les déclencheurs de ces deux applications. Cette étape ne m'a pas profité.
Il est à noter que j'ai observé ce problème dans la version stock d'Android 5.1.1 et dans une version snapshot de CM13.
Alors, comment atteindre l'objectif ?
Update
Je sais qu'il est possible de créer un alias dans le système d'exploitation de mon PC qui exécuterait un script permettant de pousser le fichier et d'exécuter le serveur multimédia. Cependant, c'est quelque chose que je voudrais éviter autant que possible.
* Je l'utilisais, mais je suis ensuite passé à un script exécuté depuis le PC en utilisant un alias. Cependant, Je ne veux dépendre d'aucune des deux méthodes . Mes doigts sont à l'aise pour taper adb push au lieu de adb_push ou un autre mais unique mot.
Mise à jour 2
- Je n'ai pas l'intention de me limiter à un répertoire particulier, tel que Download et ni de pousser des fichiers dans ce dernier ne fonctionne réellement.
- Je tiens à souligner que je ne demande pas comment lancer mediaserver . Je le sais déjà. Tout ce que je cherche, c'est : Quand je fais
adb push FILE /sdcard/FILE
le mediaserver devrait automatiquement et immédiatement se mettre en marche et scanner le fichier. Indépendamment de tout problème de performance perceptible, je veux qu'il se déclenche à chaque fois.
Mise à jour 3
Ok, J'utilise peut-être un terme incorrect . Peut-être mediaserver y scanner de médias sont des termes désignant deux choses différentes dans Android. En cas de confusion, veuillez vous en tenir à "media scanner" à la fois pour la révision actuelle et pour la note de prime.
Mise à jour 4
# Courtoisie de androidyue pour cette ressource utile si l'une des commandes suivantes en texte préformaté est ce que je peux utiliser dans mon appareil pour que le scanner de médias scanne le fichier.
\# FILE\_PATH refers to the location of pushed file in Android. E.g. /sdcard/Music/lolcat.mp3
am broadcast -a android.intent.action.BOOT\_COMPLETED -n com.android.providers.media/.MediaScannerReceiver
am broadcast -a android.intent.action.MEDIA\_SCANNER\_SCAN\_FILE -d file://FILE\_PATH # guaranteed to work. See https://goo.gl/lH0CLT for proof.
am broadcast -a android.intent.action.MEDIA\_MOUNTED -d file://FILE\_PATH
Mise à jour 5
Par le suggestion de Manubhargav, j'ai essayé le MTPFix de Sarkie disponible aquí . Cela n'a pas fonctionné, à la fois sous Android 6.0.1 et CM13. J'ai vu l'entrée suivante lorsque j'ai activé le service pour cette application.
04-07 09:38:14.771 3383 3383 I MTPService: Watching /storage/emulated/0
J'ai ensuite poussé un fichier son dans /storage/emulated/0/ et rien n'apparaissait dans mon lecteur de musique. Logcat n'a rien affiché d'utile non plus.
Au fait, cette application utilise FileObserver Je ne suis donc pas surpris qu'il ne puisse pas détecter les fichiers créés avec adb, puisque c'est le même problème avec les applications d'automatisation que j'ai essayées.
Note : Ne postez une réponse que si vous l'avez testée vous-même. Nous vous remercions.