2013年4月15日月曜日

Android機種依存(カメラ編) 鬼門その4

鬼門その4
その他いろいろ

 2つ以上のカメラを持つ場合、Camera.open(int cameraId)で使うカメラを指定して取得することが出来ますが、フロントカメラを指定した場合初回のみ上下が反転してしまう機種がありました。
 これの対応は初回はバックカメラ指定にするか、指定せずにCamera.open()で端末に任せる(未検証)のがいいのかなと思います。

 カメラの向きについて、画面の向きによって設定を変えないと
プレビューや取得画像の向きが合わなくなります
 こちらのサイトが大変参考になりました。Androidのカメラの向きに関する覚え書き

 あと機種依存の話ではないですが、カメラを使う場合パーミッションの設定を特に何も考えずこんな風にしてました。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
しかしこれだと、オートフォーカスとフラッシュを搭載してない端末は対応外となるため 
対応端末が大幅に減ります
私の記憶だとこの設定だと1400端末ほどで、下の記述だと2714端末(2013/4/13現在)になります
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
オートフォーカスやフラッシュがどうしても必要な場合でなければ、android:required="false" を明記しておくほうがいいかと思います。

もうひとつ参考になったサイト Androidのデバイス依存メモ[カメラ周り] あとで読む

その4まで来ましたが、これでもまだカメラの機種依存は書ききれません…
直接PictureCallBackで画像を取る場合や暗黙的Intentで取る場合など、まだまだ鬼門が出てきます。

0 件のコメント:

コメントを投稿