2016-05-20 13 views
4

は私がトーチ/懐中電灯アプリ(android.hardware.cameraが推奨されません)

電源を入れ

params = camera.getParameters(); 
    params.setFlashMode(Parameters.FLASH_MODE_TORCH); 
    camera.setParameters(params); 
    camera.startPreview(); 

でこのコードを使用したトーチ/懐中電灯アプリを持っている今しかし

params = camera.getParameters(); 
    params.setFlashMode(Parameters.FLASH_MODE_OFF); 
    camera.setParameters(params); 
    camera.stopPreview(); 

をオフにします

android .hardware.Cameraは廃止されました。新しいカメラ2 apiを代わりに使用することをお勧めします。

camera2を使用してデバイスの懐中電灯をオン/オフする方法についてのヘルプがありますか?

はあなたの助け

答えて

3

まずいただきありがとうございます、非推奨のandroid.hardware.CameraのAPIはまだ正常に動作し、あなたが5.0ロリポップよりも古いAndroidのリリースをサポートする必要がある場合、あなたはまだそれを使用する必要があります。

最新のAndroidのリリース(アンドロイドマシュマロ以降)のための最も簡単なオプションは、新しい直接懐中電灯コントロールです:CameraManager.setTorchMode

それは使用することは非常にシンプルだし、カメラの許可を必要としません。

だから私は、次をお勧めします。(同様にプレビュー表示を設定することを忘れないでください、ダミーSurfaceTextureが最も簡単です)、プリAPI 23

非推奨カメラのAPIと既存のアプローチを使用しています。カメラ権限と実行時権限の要求処理が必要になります。

API 23以降では、setTorchMode呼び出しを使用し、特定の実行時アクセス権を要求する必要はありません。

+0

ありがとうございました! :) –

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_FRONT 
         && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) { 
        mCameraId = camID; 
        break; 
       } else if (lensFacing == CameraCharacteristics.LENS_FACING_BACK 
         && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) { 
        mCameraId = camID; 
       } 
       if (mCameraId != null) { 
        mCameraManager.setTorchMode(mCameraId, true); 
       } 
      } 
     } catch (CameraAccessException e) { 
      e.printStackTrace(); 
     } 
    } 
関連する問題