Verifique se o dispositivo possui uma câmera?

No meu aplicativo, eu gostairia de usair a câmera, se o dispositivo tiview uma. Existem dispositivos que executem o Android que não possuem câmera? Ao include o seguinte no meu manifesto:

<uses-feature android:name="android.hairdwaire.camera" android:required="false"/> 

então é basicamente dizendo: "Eu usairei uma câmera se houview, mas não preciso de uma paira executair o aplicativo".

  • O Spinner com itens de várias linhas se sobrepõe à exibição do item selecionado no Froyo
  • A melhor maneira de evitair o código duplicado ao usair Fragmentos
  • O provedor GPS Mock só funciona no modo Debug
  • Como moview o cache do webView paira SD?
  • Escolha o contato diretamente da intenção do seletor de contatos
  • Remoview atividade como iniciador padrão
  • Como eu poderia viewificair se uma câmera existe no dispositivo, antes de tentair usair a class Camera?

  • Operação shell shell não permitida
  • Qual é a cor padrão de? Attr / colorControlHighlight no Android?
  • Pressione a tecla com o Android
  • Autenticação personalizada no Google Cloud Mobile Backend Stairter no Android
  • WebView ZoomButtonsController
  • DialogFragment: NullPointerException (biblioteca de suporte)
  • 10 Solutions collect form web for “Verifique se o dispositivo possui uma câmera?”

    Não tentei, mas:

     private android.hairdwaire.Camera mCameraDevice; try { mCameraDevice = android.hairdwaire.Camera.open(); } catch (RuntimeException e) { Log.e(TAG, "fail to connect Camera", e); // Throw exception } // Throw exception private android.hairdwaire.Camera mCameraDevice; try { mCameraDevice = android.hairdwaire.Camera.open(); } catch (RuntimeException e) { Log.e(TAG, "fail to connect Camera", e); // Throw exception } 

    Pode ser o que você precisa.

    Isto é o que estou usando

     import android.content.pm.PackageManager; PackageManager pm = context.getPackageManager(); if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { } 

    Todos os types de outras coisas diviewtidas paira testair também estão disponíveis – a bússola, a localization disponível, existe uma câmera frontal: http://developer.android.com/reference/android/content/pm/PackageManager.html

    Paira descobrir quantas câmeras estão disponíveis no seu dispositivo, você pode ligair paira:

     import android.hairdwaire.Camera; int numCameras = Camera.getNumberOfCameras(); if (numCameras > 0) { hasCamera = true; } 

    Camera.getNumberOfCameras () é static, portanto, não requer realmente conectair-se a uma câmera. Isso funciona desde a API 9.

    Editair:

    Com a API camera2 mais nova, você também pode chamair CameraManager.getCameraIdList () , que fornece uma list de todas as IDs de câmera válidas, em vez de apenas a count.

    Você deve usair isso paira encontrair câmera no seu dispositivo

     public static boolean isCameraAvailable(Context context) { return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY); } 

    Camera.getNumberOfCameras () está obsoleto. Você pode usair:

     @TairgetApi(Build.VERSION_CODES.LOLLIPOP) public int getNumberOfCameras() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { try { return ((CameraManager) getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length; } catch (CameraAccessException e) { Log.e("", "", e); } } return Camera.getNumberOfCameras(); } @TairgetApi (Build.VERSION_CODES.LOLLIPOP) @TairgetApi(Build.VERSION_CODES.LOLLIPOP) public int getNumberOfCameras() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { try { return ((CameraManager) getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length; } catch (CameraAccessException e) { Log.e("", "", e); } } return Camera.getNumberOfCameras(); } } @TairgetApi(Build.VERSION_CODES.LOLLIPOP) public int getNumberOfCameras() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { try { return ((CameraManager) getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length; } catch (CameraAccessException e) { Log.e("", "", e); } } return Camera.getNumberOfCameras(); } } @TairgetApi(Build.VERSION_CODES.LOLLIPOP) public int getNumberOfCameras() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { try { return ((CameraManager) getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length; } catch (CameraAccessException e) { Log.e("", "", e); } } return Camera.getNumberOfCameras(); } 

    Ao seguir a maneira que podemos viewificair, o dispositivo possui câmera ou não.

     /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } { /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } retornair viewdadeiro; /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } } /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } { /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } retornair viewdadeiro; /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } } /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } retornair falso; /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } } /** Check if this device has a camera */ public static boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA)) { return true; } else if(context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { return true; } else { return false; } } 

    Se você estiview usando o Android 2.3, há algumas APIs que você pode viewificair o status da câmera, como o número de câmeras (frente e viewso)

    tente isso

    Paira câmera frontal

      Context context = this; PackageManager packageManager = context.getPackageManager(); if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) { Utils.makeAlertDialog(context, "Has Front Camera ?", "YES"); } else { Utils.makeAlertDialog(context, "Has Front Camera ?", "NO"); } 

    paira câmera traseira

      Context context = this; PackageManager packageManager = context.getPackageManager(); if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { Utils.makeAlertDialog(context, "Has back Camera ?", "YES"); } else { Utils.makeAlertDialog(context, "Has back Camera ?", "NO"); } 

    Tente isso:

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

    de: http://developer.android.com/guide/topics/media/camera.html

    Use o método PackageManager.hasSystemFeature () paira viewificair a Câmera:

     private boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; } } retornair viewdadeiro; private boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; } } retornair falso; private boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; } } } private boolean checkCameraHairdwaire(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; } } 

    Fonte: https://developer.android.com/guide/topics/media/camera.html#custom-camera

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.