在Android 31中,视频捕获意图不再允许非所有者应用程序与挂起的项进行交互。如果您的应用程序希望进行这些交互,可以使用MediaStore API来代替。
以下是一个示例,展示如何使用MediaStore API捕获视频并将其保存到公共存储区域:
private static final int REQUEST_VIDEO_CAPTURE = 1;
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
Uri videoUri = data.getData();
// Do something with the video URI
}
}
此代码使用Intent启动视频捕获应用程序,并在用户完成录制后接收返回的视频URI。如需保存视频到公共存储区域,请改为使用MediaStore类中的静态方法。