如何强制只打开设备摄像头以进行视频捕获?

How can I force to open only device camera for video capture intent?

当我使用相机 Intent 捕捉视频时,用户可以 select 所有相机应用程序。但我想强制用户只打开设备相机。我该怎么做?

我目前的意图:Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

private void captureVideo() {
    Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (captureIntent.resolveActivity(conversationActivity.getPackageManager()) != null) {
        if (captureVideoUri == null) {
            captureVideoUri = Uri.fromFile(CameraHelper.getOutputMediaFile(CameraConfiguration.MEDIA_ACTION_VIDEO));
        }
        captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, captureVideoUri);
    }
    startActivityForResult(captureIntent, 1);
}

I want to force the user to turn on only the device camera. How can I do that?

您可以通过定义 setClassName (String packageName, 字符串类名)。但我认为这不是正确的方法,因为如果您不开发特定于设备的应用程序,您可能会遇到问题。

原因是 - 每个设备都不会有相同的相机应用程序,因此,application_full_class_name 不会每次都借给那个特定的应用程序。它也可能抛出 ActivityNoFoundException