如何强制只打开设备摄像头以进行视频捕获?
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
。
当我使用相机 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
。