Android 摄像头2-呼叫时应用程序将最小化;openCamera";camera2api中的方法

Android 摄像头2-呼叫时应用程序将最小化;openCamera";camera2api中的方法,android,camera,android-camera,android-camera2,Android,Camera,Android Camera,Android Camera2,我正在使用最新的camera 2 API开发一个摄像头应用程序,我的应用程序中有一个按钮,可以在每次单击按钮时选择前向摄像头和后向摄像头 代码为: switch_camera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // facing = characteristics.get(CameraCharacteristics.LENS

我正在使用最新的camera 2 API开发一个摄像头应用程序,我的应用程序中有一个按钮,可以在每次单击按钮时选择前向摄像头和后向摄像头

代码为:

switch_camera.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // facing = characteristics.get(CameraCharacteristics.LENS_FACING);
        if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT) {
            //isfrontcam=true;
            try {
                manager.openCamera("0",mStateCallback,mBackgroundHandler);
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (CameraAccessException e) {
                e.printStackTrace();
            }
        } else if (facing != null && facing == CameraCharacteristics.LENS_FACING_BACK) {
            // isfrontcam = true;
            try {
                manager.openCamera("1", mStateCallback, mBackgroundHandler);
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (CameraAccessException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

我的问题是,当我点击按钮选择相机时,应用程序将自动最小化。上面的代码片段在点击按钮时执行。我不明白这个错误的原因。有人能帮忙吗?

需要logcat信息来了解您的实际问题,没有太多信息,我想下面的解决方案可能适合您

而不是-->manager.openCamera(“0”,mStateCallback,mBackgroundHandler); &manager.openCamera(“1”,mStateCallback,mBackgroundHandler)

尝试: openCamera管理器(GetBackPacingCameraid(cManager), mStateCallback,mBackgroundHandler)

manager.openCamera(getFrontFacingCameraId(cManager),mStateCallback, mBackgroundHandler)


Ref:

如果你告诉我们错误是什么,那会有帮助吗?你确定你在android上使用它>=21在logcat中没有错误,应用程序将在调用“manager.openCamera”方法后退出,在AndroidMonitor中如何?当应用程序关闭时,应该会有一大块红线,通常如果你滚动到红线的开头,你会从第一行就清楚地知道发生了什么。@ankit aggarwal:是的,我正在使用棒棒糖设备:)>=21,实际上应用程序正在最小化,而不是崩溃和其他错误。多亏花时间回答我的问题,我试过使用这个片段,但问题仍然没有解决。
String getFrontFacingCameraId(CameraManager cManager){
   for(final String cameraId : cManager.getCameraIdList()){
         CameraCharacteristics characteristics =     
         cManager.getCameraCharacteristics(cameraId);
         int cOrientation =        
         characteristics.get(CameraCharacteristics.LENS_FACING);
         if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT)      
             return cameraId;
         }
         return null;
}


String getBackFacingCameraId(CameraManager cManager){
     for(final String cameraId : cManager.getCameraIdList()){
         CameraCharacteristics characteristics =      
         cManager.getCameraCharacteristics(cameraId);
         int cOrientation =   
         characteristics.get(CameraCharacteristics.LENS_FACING);
         if(cOrientation == CameraCharacteristics.LENS_FACING_BACK)   
            return cameraId;
         }
         return null;
}