がぶちゃんの日記

札幌からフルリモートCTO

IS01でサブカメラ(インカメラ)を使う方法

SHARP Androidアプリ開発 テクニカルセッション 名古屋に参加してシャープさんのカメラ担当者さんを質問攻めにしながらFacetterのサブカメラ(インカメラ)対応を行ったので、情報共有します。

AddOnのダウンロードとインストール

以下の手順でAddOnのダウンロードとインストールを行ないます。

SH Developers Square - SDK AddOn ダウンロード

ビルドターゲット

Build TargetでJN-DK01を選択します。既に開発中であればプロジェクトのPropertiesのAndroidから変更できます。


マニフェストファイル

共有ライブラリを使うので、マニフェストファイルのタグ内に以下のタグを追記します。

<uses-library android:name="jp.co.sharp.android.hardware" />

カメラを使うので、以下のタグも追記します。

<uses-permission android:name="android.permission.CAMERA" />

リファレンス

サブカメラを使うためのCameraExクラスのリファレンスはこちら
https://sh-dev.sharp.co.jp/android/reference/r329d/index.html?jp/co/sharp/android/hardware/CameraEx.html

サブカメラの使い方

Camera camera = CameraEx.open(CameraEx.CAMERA_POSITION_SUB);

CameraExクラスのopenメソッドにCameraEx.CAMERA_POSITION_SUBを指定してCameraオブジェクトを取得します。open()の返り値の型が標準のCamera型なので、open()以降の処理は通常のCameraクラスの使い方と同様です。いつも通りに扱えます。
Facetter Cameraでもopen()を変更するだけで、正常に動作しました。

アプリ配布時の注意点

"jp.co.sharp.android.hardware"という共有ライブラリを使うので、このライブラリが存在しない端末にはインストール時に以下のエラーが発生して、インストールできません。

[2010-07-25 21:50:30 - Facetter] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY

なので、シャープ端末とその他の端末でアプリを分けて配布する必要があります。

OSXでデバイスを認識しない場合

1. ~/.android/adb_usb.ini に以下を追記します。

0x04dd

2. adb を再起動します。
3. adb devices で確認できたらOK!