2017-10-28 12 views
0

オンにされていません。このスニペットはonClickListenerで実行されます。 cameraManager.setTorchMode(cameraId, true);が実行されると、アプリケーションは最小化されます(私はまだ動作していますが、クラッシュしていません)が、フラッシュはオンになっていません。setTorchModeは()アプリを最小限に抑え、私は、Androidとのわずかな経験を持っているし、次のコードを持っているフラッシュ

私はフラッシュが利用可能かどうかをチェックするようなオプションを実験した後、ほとんど疲れました。このプロジェクトは、Jellybean + Android用に設定されています。テスト用の携帯電話はLollipop 5.0.2です。

私はこの質問をの重複している可能性があり知っている: How to open device flashlight in Android N?

しかし、徹底的にすべてのオプションを試してみましたが、必死にソリューションを必要としていました。前もって感謝します。

答えて

0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); 
     try { 
      for (String camID : mCameraManager.getCameraIdList()) { 
       CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(camID); 
       int lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING); 
       if (lensFacing == CameraCharacteristics.LENS_FACING_BACK 
         && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) { 
        mCameraId = camID; 
        break; 
       } 
      } 
      if (mCameraId != null) { 
       mCameraManager.setTorchMode(mCameraId, true); 
      } 
     } catch (CameraAccessException e) { 
      e.printStackTrace(); 
     } 
    } 

mCameraIdはカメラのフラッシュをオンにします。デバイスにフラッシュハードウェアがない場合、mCameraIdはnullになり、上記のコードではsetTorchModeは呼び出されません。

関連する問題