Posso acionar uma varredura de mídia pela linha de comando?

14

É possível acionar o scanner de mídia para atualizar seu banco de dados através da linha de comando?

Eu tenho um servidor SSH instalado no meu dispositivo Android e copio arquivos de / para o mesmo link. Seria ótimo se eu também pudesse desencadear uma nova varredura para o scanner de mídia.

Estou ciente de que existem aplicativos no mercado para fazer isso por meio da interface do usuário, mas não é isso que eu quero.

Qualquer ajuda totalmente apreciada.

Ken Sharp
fonte

Respostas:

14

O servidor SSH não define todas as variáveis ​​de ambiente necessárias, portanto, é mais fácil usar um script de shell.

#!/system/bin/sh

export ANDROID_ASSETS=/system/app
export ANDROID_CACHE=/cache
export ANDROID_DATA=/data
export ASEC_MOUNTPOINT=/mnt/asec
export ANDROID_ROOT=/system
export BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar
export EXTERNAL_STORAGE=/mnt/sdcard
export LD_LIBRARY_PATH=/vendor/lib:/system/lib

am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard

Quando bem sucedido:

# rescan-media
Broadcasting: Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///mnt/sdcard }
Broadcast completed: result=0

Isso funciona no Cyanogenmod 9.1. Dependendo do seu sistema, o ambiente pode ser um pouco diferente.

Nota: Nas versões posteriores do Cyanogenmod / Android, o cartão SD pode ser montado em /storage/sdcard0. Certifique-se de saber onde sua placa está montada ou isso nunca funcionará. Diskinfo pode ajudar aqui.

Agradeço a Dan Hulme por me empurrar na direção certa.

Referências:

http://developer.android.com/reference/android/content/Intent.html
http://forum.xda-developers.com/showthread.php?t=1752749
http://intwoplacesatonce.com/
http: // kennystechtalk.blogspot.co.uk/2013/08/start-android-media-scanner-from.html

Ken Sharp
fonte
No Android paranóico (CM10 / JB 4.1), isso causa uma reinicialização imediata. Não tenho certeza se há um problema com a ROM ou se algo mudou. Irá investigar.
Ken Sharp
No CM11, isso não funciona.
Jared Burrows
@JaredBurrows Você já usou o caminho correto? No CM10, isso foi alterado de / mnt / sdcard para / storage / sdcard0.
Ken afiada
Desculpe, eu quis explicar mais. Estou executando o CM11 Android 4.4.2 Kit Kat. Eu tentei / sdcard /, / sdcard / Music. Meu sdcard está muito vazio. Estou tentando atualizar o Google Play Music.
Jared Burrows
2
Aparentemente, isso não funciona mais no Android 8.1. Até a GUI das ferramentas de desenvolvedor, que usa a mesma transmissão, não funciona mais.
user149408