メインと処理の2つのアクティビティがあります。処理アクティビティの は、フォルダ内のファイル名に対して編集操作を実行した後、ブロードキャストで更新するスキャンを開始し、スキャンが完了すると確認します。Androidで新しいメディアファイルのスキャンを実行しているかどうかを検出する方法(バックグラウンドで)
//end batch renaming operation
//start updating media store library
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory())));
//show toast "updating"
op_media_mounted.show();
//catch when updaitng op ends
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED);
filter.addDataScheme("file");
BroadcastReceiver mReceiver = (new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) {
Toast.makeText(frm_elabora.this, "Scan complete.", Toast.LENGTH_SHORT).show();
}
}
});
registerReceiver(mReceiver, filter);
スキャンが実行されている場合、アクティビティ防止処理を渡したいと思います。 スキャンが実行されていないか最初に確認してから、2番目の処理アクティビティを起動できますか?これで
私はアンドロイドのスキャンを実行中にファイル名を変更した場合、私は処理アクティビティ内のファイルを編集するときに、最後に私はサイズのフォルダ内の他のファイル0バイトを見つけるために、私は、これをチェックする必要がButton btnstart = (Button)findViewById(R.id.btn_start);
btnstart.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (there_isnt_scan_for_new_media_file)
startActivity(intent_processing);
else{
wait_until_ACTION_MEDIA_SCANNER_FINISHED
startActivity(intent_processing);
}
変更前と同じように。 私はスキャンの終了を待つ必要があります。私は解決策を見つけることができません。
UPDATES: 私はこの
public static Uri getMediaScannerUri()
Since: API Level 1
Uri for querying the state of the media scanner.
を見つけた私は、この
//send broadcast
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" +
Environment.getExternalStorageDirectory())));
//show media scanner state
Toast.makeText(frm_elabora.this,
MediaStore.getMediaScannerUri().toString(),
Toast.LENGTH_SHORT).show();
を試してみて、私は "コンテンツ://メディア/なし/ media_scanner" を取得私が頼めば...いつも の後にgetMediaScannerUri()がACTION_MEDIA_MOUNTEDを送信しました。「content:// media/none/media_scanner」とは違う何かを取得する必要がありますか?
いいえ、あなたは正しいです。解決策になる可能性があります。 **ありがとうございました**! – kekko986
質問:POSTの更新:私はこれを発見しました public static Uri getMediaScannerUri() 導入されたバージョン:API Level 1 Uriがメディアスキャナの状態を問い合わせています。 – kekko986
ここにMEDIA_SCANNER_VOLUMEの動作例を示す重複した質問があります(この質問より後で質問します):http://stackoverflow.com/questions/12136681/detect-if-media-scanner-running-on-android – k3b