2016-08-19 2 views
0

Camera 및 Camera2를 모두 지원하는 Android 앱을 만들려고합니다. 해당 코드 섹션에 대해 API 수준을 확인하는 if 문을 사용하여 수행했습니다. 그러나, 내가 lint 오류가있어 CameraAccessException 대처하는 데 문제가있어,하지만 그것을 제거하는 방법을 잘 모르겠습니다. API 수준을 검사하는 if 문으로 try/catch를 둘러싸면 lint 오류가 사라지지 않습니다. 린트 오류를 ​​제거하는 다른 방법이 있습니까? 나는 검사를 억제하지 않을 것입니다.오래된 Apis 생성 린트 오류가있는 Android CameraAccessException

private String getFrontCamera2() { 
    if (Build.VERSION.SDK_INT >= 21) { 
     CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); 
     String[] cameraIdList; 
     try { 
      cameraIdList = cameraManager.getCameraIdList(); 
     } catch (CameraAccessException e) { 
      return null; 
     } 
     for (String cameraId : cameraIdList) { 
      CameraCharacteristics cameraCharacteristics = null; 
      try { 
       cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId); 
      } catch (CameraAccessException e) { 
       return null; 
      } 
      Integer lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING); 
      if (lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_FRONT) { 
       return cameraId; 
      } 
     } 
    } 
    return null; 
} 

코드의 조각 두 catch 문은 "클래스 API 레벨 21를 필요로"린트 오류를 ​​생성하는 : 여기에 내가 무슨 말의 예입니다.

답변

0

방금 ​​내 문제를 해결하는 @TargetApi 주석에 대해 알게되었습니다.

관련 문제