Сервер SSH не устанавливает все необходимые переменные среды, поэтому проще использовать сценарий оболочки.
#!/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
Когда успешно:
# rescan-media
Broadcasting: Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///mnt/sdcard }
Broadcast completed: result=0
Это работает на CyanogenMod 9.1. В зависимости от вашей системы среда может немного отличаться.
Примечание. В более поздних версиях Cyanogenmod / Android SD-карта может быть установлена в /storage/sdcard0
. Убедитесь, что вы знаете, где установлена ваша карта, иначе это никогда не сработает. Дискинфо может помочь здесь.
Спасибо Дэну Халму за то, что он подтолкнул меня в правильном направлении.
Ссылки:
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