Android 安卓:当启动带有照相/拍照意图的照相应用程序时,用户需要拍两次照片
我在两部手机上看到了一个奇怪的行为,当时我只是试图以编程方式启动camera应用程序 它在其他手机(三星、摩托罗拉……)上也能正常工作,但在我的两款测试手机上——Nexus 5x(Android 8)和Pixel(1)——Android(10)——当摄像头应用程序启动时,用户需要在返回到我的应用程序之前,在onActivityResult上拍摄两次照片 启动调用非常简单,仅用于测试: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
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
似乎并没有受到照相机应用程序开发人员的太多测试。