あむちょです。
ようやく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]