Androidでライトアプリを作ってみた

あむちょです。

ようやくiPhoneアプリの審査をだしました。

PR アプリ作ってます

審査は平均2週間ほどかかるみたいで、リリースにはもう少しかかりそうです。

Androidですでにだしている、発電ライトをiPhone用に作りました。とてもくだらないアプリですが、Androidの人はやってみてね。iPhoneの人はもう少しお待ちを。

発電ライト

以下忘れないようにメモをかねて説明。

ライトの点灯するには、カメラを操作する必要があります。なにはともあれインポート

<br />
import android.hardware.Camera;<br />
import android.hardware.Camera.Parameters;<br />

とメンバー変数を用意

<br />
private Camera camera;<br />
private Parameters cp;<br />

次にカメラを初期化。アクテビィティーがonResumeのタイミングでしてます。

<br />
public void setCamera(){</p>
<p>    if(camera == null){<br />
        camera = Camera.open();<br />
        cp = camera.getParameters();<br />
        cp.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);<br />
        camera.setParameters(cp);<br />
        cmera.startPreview();<br />
    }</p>
<p>}<br />

あとは光らせたいタイミングで、

<br />
cp.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);<br />
camera.setParameters(cp);<br />

消したいタイミングで

<br />
cp.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);<br />
camera.setParameters(cp);<br />

で、気をつけないといけないのが、このままの状態でバックグラウンドにまわった時、ほかのカメラを扱うアプリが起動できなくなってしまうので、アクティビティーがonStopしたタイミングでカメラをリリースする必要があります。

<br />
public void cameraRelease(){<br />
    if(camera != null){<br />
        if(lightFlag){<br />
            lightFlag=false;<br />
            cp.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);<br />
            camera.setParameters(cp);<br />
        }<br />
        camera.stopPreview();<br />
        camera.release();<br />
        camera=null;<br />
    }<br />
}<br />

これで完成です。

Androidはハードウェアに関して各社好き勝手やってるせいで、カメラ周りのエラーが凄く多くです。

一番オススメの対応策は、

Androidではカメラを扱うアプリを作らない

 

コメント