您必须添加下一个代码。设备具有Android 6.0或更高版本。
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}
如果你的应用有使用权限STORAGE我们打开存储。
如果您的应用程序没有使用STORAGE的权限,我们会打开系统对话框。 您可以在onRequestPermissionsResult中看到的对话框的结果。 (您必须在您的活动上覆盖它)。
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == 2) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
}
}
我认为你必须提取私有方法的下一行。
private void takePhoto() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
欲了解更多信息,请参阅:https://developer.android.com/training/permissions/requesting.html
[此示例应用](https://github.com/commonsguy/cw-omnibus/tree/master/Media/VideoRecordIntent)使用'ACTION_VIDEO_CAPTURE'在Pixel上正常工作。 – CommonsWare
尝试了一些从应用程序的东西,但它仍然无法正常工作。我也在使用uses-feature的东西,但是这不会改变任何东西 – Userrrrrrrrr
我刚刚从示例应用程序中将意图的代码复制到我的应用程序中,但它仍然不起作用 – Userrrrrrrrr