Android標準には、カメラクラス(com.android.hardware.Camera)が存在していますが、これはその標準カメラクラスを拡張するためのAPIです。
com.android.hardware.Cameraでは、サブカメラを使用するためのIFが存在していないため、サブカメラ使用時に必要となるIFを追加します。
CameraExクラスは標準のCameraを拡張することで、メインカメラ、サブカメラに対するカメラオブジェクトを取得可能にしています。
CameraExを使用する場合、com.android.hardware.Cameraオブジェクトが返却されますので、以後は標準のCameraオブジェクトと同じ使い方ができます。
※Android標準のカメラ使用法 参照
CameraEx.open()を使用することで、実機に付属しているメインカメラ、サブカメラのどちらかを指定してカメラを起動することができます。
起動したカメラのメイン・サブ切替は、一旦カメラオブジェクトを解放し、再度CameraEx.open()で起動しなおしてください。
標準のカメラクラス使用方法についてはAndroid Developersのサイトを参照してください。
Android Developers
標準カメラクラス android.hardware.Camera
使用例 API Demos CameraPreview.java
SDKへAddOnの追加と、Manifestファイルへライブラリの参照およびAPIを使用するためのパーミッションを記述する必要があります。
パッケージ名 | クラス名 | 備考 |
---|---|---|
jp.co.sharp.android.hardware | CameraEx | カメラ拡張クラス |
Android1.6用は以下の設定になります。
まず、Manifestファイルへ、アプリケーション が参照するライブラリの参照設定を行います。
Manifestファイルの<application>要素の子要素に<user-library>を追加します。
<user-library>のandroid:name属性に jp.co.sharp.android.hardware を設定します。
Android2.1用は以下の設定になります。
まず、Manifestファイルへ、アプリケーションが参照するライブラリの参照設定を行います。
Manifestファイルの<manifest>要素の子要素に<uses-feature>と、<application>要素の子要素に<uses-library>を追加します。
<uses-library>のandroid:name属性にjp.co.sharp.android.hardwareを設定します。
<uses-feature>のandroid:name属性にjp.co.sharp.android.hardware.cameraexを設定します。
<uses-feature>のandroid:required属性にtrueを設定します。
<uses-feature>を設定することにより、弊社端末以外でGoogle Playにアクセスした場合に表示されないようになります。
以下からは共通の設定になります。
次に、アプリケーションで、カメラを使用するための、パーミッション設定をします。
Manifestファイルの<manifest>要素の子要素に<uses-permission>を追加します。
<uses-permission>のandroid:name属性に android.permission.CAMERAを設定します。
これらの宣言がなければ、カメラを使用することができないため、注意してください。
基本的なカメラの起動および、カメラが取得した画像を表示するviewの設定についてはAndroid Developersのサンプルを参照してください。
○メインカメラ取得方法
○サブカメラ取得方法
サンプルアプリはメイン・サブを指定したカメラの起動のみ可能です。
撮影したデータの保存方法などはAndroid Developersの標準カメラクラスの説明を参照してください。
Android Developers
標準カメラクラス android.hardware.Camera
撮影データを取得するIF
public final void takePicture (
Camera.ShutterCallback shutter,
Camera.PictureCallback raw,
Camera.PictureCallback jpeg
)
●Android 1.6用SDK AddOnを使用する場合
Android 1.6用API概要とリファレンスの規定に従い、AndroidManifest.xmlでuses-library、uses-permission、uses-sdkを指定してビルドください。
2.1の端末でも動作可能です。
●Android 2.1用ADK AddOnを使用する場合
Android 1.6上で動作できるようにするためには、AndroidManifest.xmlで uses-library、uses-permission、uses-sdk を指定してビルドください。
ただし、uses-sdkはandroid:minSdkVersion="4"に設定する必要があります。
ビルド時に警告メッセージを表示しますが、ビルド後のAPKはAndroid 1.6の端末にもインストール可能です。
なお、上記3つに加えて、Android 2.1で追加したuses-featureを指定してビルドすることも可能です。
feature指定すると、公開APIを利用したアプリケーションをマーケットに公開した際、feature指定した機能がない端末へのインストールを制限することができます。