フラッシュライトをオン・オフにする

カメラや電灯アプリなどではフラッシュライトを使ってスマホを灯り代わりにすることがありますが、ここではそのフラッシュラインとをオンオフにする方法について簡単にまとめてみます。

権限の追加

次にAndroidManifest.xmlに次の権限(パーミッション)を追加します。

    <!-- 下の2つのパーミッションを追加 -->
    <permission android:name="android.permission.FLASHLIGHT"
        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
        android:protectionLevel="normal" />
    <uses-permission android:name="android.permission.CAMERA"/>
</manifest>

フラッシュライトが使えるか確認する

まずは使用している端末がフラッシュライトに対応しているかを関数で調べます。

それが次の関数です。

getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)

この関数がtrueを返せばライトが使用できるので次のようなコードでライトが使えない場合の処理ができます。

        if(!getPackageManager().hasSystemFeature(
        		PackageManager.FEATURE_CAMERA_FLASH))
        {
        	Toast.makeText(this, "フラッシュライトは使えません。", 
        	                Toast.LENGTH_LONG);
        	finish();
        }

ライトをオンオフにしてみる

まずはONにするコードがこちら

Camera camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

そして次がOFFにするコード

Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);

他にも方法があるかもしれませんが、これ以外だと一度フラッシュをもう一度オンにしたい場合にうまくいかなかったのでこの方法を取りました。

あとフラッシュライトを使い終わったらreleaseするのも忘れないようにしましょう。

camera.release();

まとめ

フラッシュライトは単独で機能するものだとばかり思っていましたが、実際はカメラの機能の一部に組み込まれているみたいです。

それと外部アプリを起動したときにフラッシュが維持されるかどうかも分かっていないので今度調べたいと思います。

では、また!!

関連項目
プライバシーポリシー