El mediaserver en mi Android 6.0.1 stock y rooteado (corriendo en el Nexus 6) no detecta nuevos archivos creados o movidos a en /sdcard usando adb. No detecta hasta que hago un reinicio suave / completa que me parece inaceptable para llevar a cabo.
Soy capaz de ejecutar manualmente mediaserver utilizando la línea de comandos para comenzar la exploración de archivos de nuevo # y quiero que esto se haga de forma automática e inmediata cada vez que se cree un nuevo archivo en /sdcard . De momento, hago que Tasker ejecute el mediaserver cada vez que se desenchufa el cable USB. *
La opción obvia aquí parece ser una aplicación de automatización de la cual probé Tasker y Automatice y, sorprendentemente, ambos no detectan los nuevos archivos, especialmente en /sdcard/Music, cuando se crean a través de adb. Sin embargo, si una aplicación creaba archivos en cualquier directorio bajo /sdcard esas dos aplicaciones detectaron inmediatamente los cambios. También probé a enviar archivos a /almacenamiento/emulado/0/ en lugar de /sdcard/ e hice los cambios correspondientes en los activadores de esas dos aplicaciones.Ese paso no me benefició.
Hay que tener en cuenta que he observado este problema en Android 5.1.1 de stock y en una build de CM13 snapshot también.
Entonces, ¿cómo lograr el objetivo?
Actualización
Estoy al tanto de la posibilidad de crear un alias en el sistema operativo que se ejecuta en mi PC, el cual ejecutaría un script proporcionando una manera de empujar el archivo, así como ejecutar el mediaserver. Sin embargo, es algo que me gustaría evitar en la medida de lo posible.
* Yo lo utilizaba, pero luego cambié a un script ejecutado desde el PC utilizando un alias. Sin embargo, No quiero depender de ninguno de los dos métodos . Mis dedos se sienten cómodos escribiendo adb push en lugar de adb_push o alguna otra pero única palabra.
Actualización 2
- No tengo la intención de restringirme a un directorio en particular, como por ejemplo Download y tampoco funciona el empuje de archivos en este último.
- Me gustaría subrayar que no estoy pidiendo cómo ejecutar mediaserver . Eso ya lo sé. Todo lo que estoy buscando es: Cuando hago
adb push FILE /sdcard/FILE
el mediaservidor debería activarse automática e inmediatamente y escanear el archivo. Independientemente de cualquier problema de rendimiento perceptible, quiero que se ponga en marcha cada vez.
Actualización 3
De acuerdo, Puede que esté utilizando un término incorrecto . Quizás mediaservidor y escáner de medios son términos para dos cosas diferentes en Android. En caso de confusión, por favor, quédese con "escáner de medios" tanto para la revisión actual como para la nota de recompensa.
Actualización 4
# Cortesía de androidyue para este útil recurso Cualquiera de los siguientes comandos en texto preformateado es lo que puedo utilizar en mi dispositivo para hacer que el escáner de medios escanee el archivo.
\# 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
Actualización 5
Según la sugerencia de Manubhargav, probé el MTPFix de Sarkie disponible aquí . No funcionó, tanto en Android 6.0.1 de stock como en CM13. Vi la siguiente entrada cuando habilité el servicio para esa aplicación.
04-07 09:38:14.771 3383 3383 I MTPService: Watching /storage/emulated/0
Más tarde introduje un archivo de sonido en /almacenamiento/emulado/0/ y no aparecía nada en mi reproductor de música. Logcat tampoco mostraba nada útil.
Por cierto, esta aplicación utiliza FileObserver Así que no me sorprende que no pueda detectar los archivos creados con adb, ya que es el mismo problema con las aplicaciones de automatización que he probado.
Nota: Por favor, publique una respuesta sólo cuando lo haya probado usted mismo. Gracias.
0 votos
He encontrado esto, está fuera de mi alcance de conocimiento (las respuestas apuntan a alguna herramienta MediaScannerConnection en herramientas de desarrollador) pero podría ayudar... stackoverflow.com/questions/15147536/
0 votos
Nota a los lectores: por favor, no me sugieras que compile adb. Eso no lo voy a hacer aunque me facilitéis detalles para ello.
0 votos
Arreglo MTP de Sarkie (APK a instalar en el dispositivo) ayuda a mediaserver a escanear los archivos copiados bajo MTP. Escanea recursivamente el Directorio de Almacenamiento Externo y luego se añade al Escáner de Medios una vez que se ha creado un archivo. Podría ayudar con ADB también, vale la pena intentarlo.