コマンドラインからメディアスキャンをトリガーできますか?


14

コマンドライン経由でメディアスキャナーをトリガーしてそのDBを更新することは可能ですか?

私が持っているSSHサーバは、私のAndroidデバイスにインストールされていると私は同じリンク上から/にファイルをコピーします。メディアスキャナーの再スキャンもトリガーできれば素晴らしいと思います。

UIを介してこれを行うアプリケーションが市場に存在することは承知していますが、これは私が望むものではありません。

すべての助けに感謝します。

回答:


14

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


Paranoid Android(CM10 / JB 4.1)では、これによりすぐに再起動します。ROMに問題があるか、何かが変更されたかどうかはわかりません。調査します。
ケンシャープ14

CM11では、これは機能しません。
ジャレッド・バロウズ

@JaredBurrows正しいパスを使用しましたか?CM10では、これは/ mnt / sdcardから/ storage / sdcard0に変更されました。
ケンシャープ

申し訳ありませんが、もっと説明するつもりでした。CM11 Android 4.4.2 Kit Katを実行しています。/ sdcard /、/ sdcard / Musicを試しました。私のSDカードは非常に空です。Google Playミュージックを更新しようとしています。
ジャレッド・バロウズ

2
これは明らかにAndroid 8.1では動作しません。同じブロードキャストを使用する開発者ツールGUIでも機能しなくなりました。
user149408
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.