视频选择器 - 牛轧糖中的例外

时间:2017-12-25 09:13:25

标签: android

这是我们的视频选择器代码,几乎是标准代码。此代码在Nougat之前在Android版本中运行,但是,它在nougat中引发了一个例外。

private void pickVideoFromGallery(Activity activity){
    Intent intent = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
    intent.setType("video/*");
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    activity.startActivityForResult(intent, MediaPicker.TYPE_FILEVIDEO);
}

例外是

android.content.ActivityNotFoundException: No Activity found to handle 
Intent { act=android.intent.action.PICK cat=[android.intent.category.OPENABLE] 
typ=video/* launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } }

但是,如果我取消注释后续行,它会开始工作,但这不是解决方案,因为我们只想选择可打开的视频

 intent.addCategory(Intent.CATEGORY_OPENABLE);

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用视频启动默认文件选择器。

 Intent intent = new Intent();
 intent.setType("video/*");
 intent.setAction(Intent.ACTION_GET_CONTENT);
 startActivityForResult(intent, 1);

答案 1 :(得分:0)

div.red-border {
	border: solid 1px red;
}