Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:当启动带有照相/拍照意图的照相应用程序时,用户需要拍两次照片_Android_Android Camera_Pixel_Android Camera Intent_Image Capture - Fatal编程技术网

Android 安卓:当启动带有照相/拍照意图的照相应用程序时,用户需要拍两次照片

Android 安卓:当启动带有照相/拍照意图的照相应用程序时,用户需要拍两次照片,android,android-camera,pixel,android-camera-intent,image-capture,Android,Android Camera,Pixel,Android Camera Intent,Image Capture,我在两部手机上看到了一个奇怪的行为,当时我只是试图以编程方式启动camera应用程序 它在其他手机(三星、摩托罗拉……)上也能正常工作,但在我的两款测试手机上——Nexus 5x(Android 8)和Pixel(1)——Android(10)——当摄像头应用程序启动时,用户需要在返回到我的应用程序之前,在onActivityResult上拍摄两次照片 启动调用非常简单,仅用于测试: val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) sta

我在两部手机上看到了一个奇怪的行为,当时我只是试图以编程方式启动camera应用程序

它在其他手机(三星、摩托罗拉……)上也能正常工作,但在我的两款测试手机上——Nexus 5x(Android 8)和Pixel(1)——Android(10)——当摄像头应用程序启动时,用户需要在返回到我的应用程序之前,在onActivityResult上拍摄两次照片

启动调用非常简单,仅用于测试:

val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent, IntentConstants.REQ_LAUNCH_CAMERA)
摄像头应用程序启动后,会显示带有“shooter”按钮的摄像头屏幕,按下按钮后,会显示带有确认检查按钮的拍摄图像,按下按钮后,确认后,不会退出。 相反,它会用shooter按钮再次显示相机屏幕,等待用户再拍一张照片并确认,然后相机应用程序才会结束并返回ActivityResult

意图只发送一次。 其他手机(三星、摩托罗拉等)没有这种情况

我的猜测是,这可能与特定手机上的摄像头应用程序设置有关(但我没有看到任何特别的设置),或者我需要在意图中添加一些内容(但我没有看到任何内容)

我也试着补充

intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
它不会改变像素上的任何内容,但会在Nexus 5X上导致内部崩溃:

Process: com.google.android.GoogleCamera
java.lang.NullPointerException at 
com.google.android.apps.camera.shutterbutton.ShutterButton.performClick
com.google.android.GoogleCamera java.lang.NullPointerException at 
com.google.android.apps.camera.shutterbutton.ShutterButton.performClick(PG:160)
我不会为Nexus 5X担心太多,但问题是像素1上也出现了这种情况,这意味着像素2、3、4上可能会出现问题(尚未对其进行测试)

任何有类似问题(和潜在解决方案)的人,请告诉我。

Mark(Commonware)是正确的,这似乎是谷歌手机的一个缺陷

相反,我找到了一个解决办法

startActivityForResult(intent, IntentConstants.REQ_LAUNCH_CAMERA)
使用选择器:

val chooser = Intent.createChooser(intent, getString(R.string.camera_action_selection_title))

startActivityForResult(chooser, IntentConstants.REQ_LAUNCH_CAMERA)

这就解决了问题。

最有可能的是,这只是您正在该相机上尝试的相机应用程序中的
ACTION\u IMAGE\u CAPTURE
实现中的一个错误
ACTION\u IMAGE\u CAPTURE
似乎并没有受到照相机应用程序开发人员的太多测试。