コマンドライン経由でメディアスキャナーをトリガーしてそのDBを更新することは可能ですか?
私が持っているSSHサーバは、私のAndroidデバイスにインストールされていると私は同じリンク上から/にファイルをコピーします。メディアスキャナーの再スキャンもトリガーできれば素晴らしいと思います。
UIを介してこれを行うアプリケーションが市場に存在することは承知していますが、これは私が望むものではありません。
すべての助けに感謝します。
コマンドライン経由でメディアスキャナーをトリガーしてそのDBを更新することは可能ですか?
私が持っているSSHサーバは、私のAndroidデバイスにインストールされていると私は同じリンク上から/にファイルをコピーします。メディアスキャナーの再スキャンもトリガーできれば素晴らしいと思います。
UIを介してこれを行うアプリケーションが市場に存在することは承知していますが、これは私が望むものではありません。
すべての助けに感謝します。
回答:
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
。カードがどこにマウントされているかを確認してください。そうしないと機能しません。ここでDiskinfoが役立ちます。
正しい方向に私を押してくれたDan Hulmeに感謝します。
参照:
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