Android API中是否有任何优雅的方法可以在将新媒体写入设备时检测新媒体?我主要对相机拍摄的照片,相机拍摄的视频和麦克风录制的音频感兴趣.
我目前的想法是定期扫描每个媒体内容提供商并根据上次扫描时间进行过滤.
我只是想知道是否有一些我可以加入的服务来获得实时通知.
每当应用程序向Media Store写入任何新内容时,都应该调用一个特殊的广播Intent:
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));
这仅适用于插入其中一个媒体商店内容提供商的文件.此外,它取决于将它放在那里广播意图的应用程序,这是所有本机(谷歌)应用程序所做的.