Android API,用于检测来自内置摄像头和麦克风的新媒体

2022-09-02 13:51:43

Android API 中是否有任何优雅的方法可以在将新媒体写入设备时检测新媒体?我主要对相机拍摄的照片,相机拍摄的视频和麦克风录制的音频感兴趣。

我目前的想法是定期扫描每个媒体内容提供商,并根据上次扫描时间进行过滤。

我只是想知道是否有一些服务,我可以得到实时通知。


答案 1

有一个特殊的广播 Intent,每次应用程序向媒体存储写入任何新内容时,都应该调用它:

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE

“广播意向”包括可通过该方法访问的新文件的路径。Intent.getDataString()

要侦听它,只需创建一个并使用如下所示注册它:BroadcastReceiverIntentFilter

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));

这仅适用于插入到其中一个媒体存储内容提供程序中的文件。此外,它还取决于将其放在那里广播意图的应用程序,这是所有本机(Google)应用程序所做的。


答案 2

啊哈!

内容观察者是我需要的!

这是我发现它的地方


推荐