2016-08-19 5 views
0

CameraとCamera2の両方をサポートするAndroidアプリを作成しようとしています。コードの適切なセクションについてAPIレベルをチェックするif文を使用しています。しかし、私はlintエラーが発生しているという点でCameraAccessExceptionに対処するのに問題がありますが、それを取り除く方法がわかりません。 APIレベルをチェックするifステートメントでtry/catchを囲むと、lintエラーは消えません。糸くずのエラーを取り除く他の方法はありますか?私は検査を抑圧したくはない。古いApisのlintエラーを生成する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注釈について知りました。これは私の問題を解決します。

関連する問題