19

デバイスに書き込まれたときに新しいメディアを検出するための Android API の洗練された方法はありますか? 主にカメラで撮った写真、カメラで撮った動画、マイクで録音した音声に興味があります。

私が現在考えているのは、各メディア コンテンツ プロバイダーを定期的にスキャンし、最後のスキャン時間に基づいてフィルター処理することです。

リアルタイムで通知を受け取ることができるサービスがあるかどうか疑問に思っています。

4

2 に答える 2

10

アプリケーションがメディア ストアに何か新しいものを書き込むたびに呼び出される特別なブロードキャスト インテントがあります。

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE

Broadcast Intent には、Intent.getDataString()メソッドを介してアクセスできる新しいファイルへのパスが含まれています。

それをリッスンするには、以下に示すように を作成し、BroadcastReceiverを使用して登録します。IntentFilter

registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      String newFileURL = intent.getDataString();
      // TODO React to new Media here.  
    }    
  }, new IntentFilter(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE));

これは、メディア ストア コンテンツ プロバイダーの 1 つに挿入されるファイルに対してのみ機能します。また、すべてのネイティブ(Google)アプリケーションが行うインテントをブロードキャストするアプリケーションに依存します。

于 2008-10-25T17:54:42.560 に答える
3

あはは!

コンテンツ オブザーバーが必要です。

ここで私はそれについて知りました

于 2008-10-24T00:43:16.017 に答える