Androidでライトアプリを作ってみた
あむちょです。
ようやくiPhoneアプリの審査をだしました。
審査は平均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ではカメラを扱うアプリを作らない
[ad]