2011-04-08 1 views

답변

2
CameraInfo cameraInfo = new CameraInfo(); 
    for (int i = 0; i < numberOfCameras; i++) { 
     Camera.getCameraInfo(i, cameraInfo); 
     if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) {    

     } 
    } 
+0

답장을 보내 주셔서 감사합니다.하지만 안드로이드 2.2를 사용하고 있습니다. CameraInfo 클래스를 찾지 못했습니다. 지금 무엇을해야할까요? – sureshmenon13196

+0

@suresh - 장치에 전면 카메라가 있는지 여부를 사용자에게 알려달라고 요청할 수 있습니까? –

5

장치가 의도를 지원하는지 확인하려면 packagemanager를 사용하십시오. 이 경우 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

public static boolean isIntentAvailable(Context context, String action) { 
    final PackageManager packageManager = context.getPackageManager(); 
    final Intent intent = new Intent(action); 
    List<ResolveInfo> list = 
      packageManager.queryIntentActivities(intent, 
        PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 
+2

댓글 권한이없는 사용자의 댓글 ([프로필] (http://stackoverflow.com/users/1005899/cfg)) :'MediaStore.ACTION_IMAGE_CAPTURE'가 작동하지 않습니다. 'android.media.action.IMAGE_CAPTURE'를 사용해야합니다. . – Anne

0

카메라가 존재하는지 확인하는 가장 빠른 방법은 Camera.open()이 null을 반환하는지 확인하는 것입니다.

Camera cam = Camera.open(); 
if(null == cam){ 
    //no camera exists 
} 

이것은 이전 버전의 안드로이드에서도 사용할 수 있습니다.

39

내가 제안하는 것은 doc_180의 대답과 비슷하지만 Froyo의 경우에도 앞면과 뒷면을 모두 감지 할 수 있어야합니다. 실수가 아니라고해도 Froyo는 전면 카메라를 지원하지 않으므로 Froyo에서 frontCam에 대해 항상 잘못된 응답을받습니다.

PackageManager pm = getPackageManager(); 
boolean frontCam, rearCam; 

//Must have a targetSdk >= 9 defined in the AndroidManifest 
frontCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT); 
rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA); 

편집 : 이것은 정말로 정말로 오래된 질문이라는 것을 깨달았습니다. 잘하면 미래의 누군가를 도울 것입니다.

+1

감사합니다 :) – Malachi

+2

Android 2.3 이상을 사용하여 앱을 컴파일하고 Android 2.2와 호환되도록 만들 수 있습니다. 'PackageManager.FEATURE_CAMERA_FRONT'와 같은 상수는 실제로 컴파일러에 의해 하드 코드되므로, 런타임시 안드로이드 2.2 또는 이전 버전에서는 실패하지 않는다는 것을 기억하십시오. – Cristian

+0

감사합니다. 도와 줬어 =] –

-1

이것은 모토 RAZR의 HD에 나를 위해 일한이 시도 :

public static Camera open (int cameraId) 

사용 예제 : 당신은 그냥 거기에 얼마나 많은 카메라를 알고 싶다면

mCamera = Camera.open(1); 
+4

지구에서 어떻게 그 질문에 대답합니까? – andr

0

는이 정적 인 방법을 사용할 수 있습니다 위치 : Camera.getNumberOfCameras(); (API 9)

0
/** Check if this device has a camera */ 
private boolean checkCameraHardware(Context context) { 
    if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ 
     // this device has a camera 
     return true; 
    } else { 
     // no camera on this device 
     return false; 
    } 
} 
+0

Nexus 7과 같이 후면 카메라가없는 기기의 경우 false를 반환합니다. –

+1

대신 FEATURE_CAMERA_ANY를 사용해보세요. – MCLLC

+0

FEATURE_CAMERA_ANY는 올바른 방법이지만 API 17 이상에서만 작동합니다. – Galya

관련 문제