com.nttdocomo.device
クラス CodeReader

Object
  |
  +--com.nttdocomo.device.CodeReader

public class CodeReader
extends Object

コード認識機能を定義します。 携帯電話のネイティブのコード認識機能を呼び出してバーコードや二次元コードの読み取りを行ったり、 OCR 機能を使ったりすることができます。

コード認識機能は、カメラ機能と同じカメラデバイスを使用します。 そのため、同じカメラIDを持つCameraオブジェクトとCodeReaderオブジェクトは互いに状態に影響を与えます。 カメラ機能を用いて撮影を行った後にコード認識を行った場合は、 Cameraオブジェクトから撮影画像を取り出せる保証はありません。 同様に、コード認識を行った後にカメラ機能を用いて撮影を行った場合は、 CodeReaderオブジェクトからコード認識の結果を取り出せる保証はありません。

導入されたバージョン:
DoJa-3.5
関連項目:
Camera

フィールドの概要
static int CODE_AUTO
           コード種別の一つで、自動でコード種別の識別を行うことを表します(=0)。
static int CODE_JAN13
           コード種別の一つで、JAN13 規格のコードを表します(=2)。
static int CODE_JAN8
           コード種別の一つで、JAN8 規格のコードを表します(=1)。
static int CODE_OCR
           コード種別の一つで、OCR によって文字認識を行うことを表します(=4)。
static int CODE_QR
           コード種別の一つで、QRコードを表します(=3)。
static int CODE_UNKNOWN
           コード種別の一つで、コード種別が不明であることを表します(=-1)。
static int CODE_UNSUPPORTED
           コード種別の一つで、サポートされていないコードであることを表します(=-2)。
static int TYPE_ASCII
           コードの内容の型の一つで、ASCII 文字列であることを表します(=2)。
static int TYPE_BINARY
           コードの内容の型の一つで、バイナリであることを表します(=0)。
static int TYPE_NUMBER
           コードの内容の型の一つで、数字のみの文字列であることを表します(=1)。
static int TYPE_STRING
           コードの内容の型の一つで、文字列であることを表します(=3)。
static int TYPE_UNKNOWN
           コードの内容の型の一つで、型が不明であることを表します(=-1)。
 
コンストラクタの概要
protected CodeReader()
           アプリケーションが直接このクラスのインスタンスを生成することはできません。
 
メソッドの概要
 int[] getAvailableCodes()
           認識可能なコードの種別を取得します。
 byte[] getBytes()
           コード認識結果をバイト列として取得します。
static CodeReader getCodeReader(int id)
           コード認識オブジェクトを取得します。
 int getResultCode()
           認識を行ったコードの種別を取得します。
 int getResultType()
           認識を行ったコードの内容の型を取得します。
 String getString()
           コード認識結果を文字列として取得します。
 void read()
           カメラデバイスを使用してコード認識を行います。
 void setCode(int code)
           認識を行うコードの種別を設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CODE_AUTO

public static final int CODE_AUTO

コード種別の一つで、自動でコード種別の識別を行うことを表します(=0)。

関連項目:
定数フィールド値

CODE_JAN8

public static final int CODE_JAN8

コード種別の一つで、JAN8 規格のコードを表します(=1)。

コード認識に成功した場合、 getResultType() メソッドは常に TYPE_NUMBER を返します。 また、getBytes() メソッドは、 数字の0〜9に対してそれぞれ0x30〜0x39を格納した長さ8のバイト配列を返します。

関連項目:
定数フィールド値

CODE_JAN13

public static final int CODE_JAN13

コード種別の一つで、JAN13 規格のコードを表します(=2)。

コード認識に成功した場合、 getResultType() メソッドは常に TYPE_NUMBER を返します。 また、getBytes() メソッドは、 数字の0〜9に対してそれぞれ0x30〜0x39を格納した長さ13のバイト配列を返します。

関連項目:
定数フィールド値

CODE_QR

public static final int CODE_QR

コード種別の一つで、QRコードを表します(=3)。

コード認識に成功した場合、 getResultType() メソッドはQRコードに含まれるモードの組み合わせによって以下の表の値を返します。
数字英数字漢字バイナリメソッドの戻り値
ありなしなしなし TYPE_NUMBER
あり/なしありなしなし TYPE_ASCII
あり/なしあり/なしありなし TYPE_STRING
あり/なしあり/なしあり/なしあり TYPE_BINARY
ただし、QRコードのサポートされていないバージョンであった場合は TYPE_UNKNOWN を返します。

また、getBytes() メソッドは、 数字モードの文字については0〜9に対してそれぞれ0x30〜0x39を、 英数字モードの文字についてはそれぞれの文字に対応するASCIIコードを、 漢字モードの文字についてはそれぞれの文字のShift-JISコード(2バイト)を、 バイナリモードのデータについてはデータのそのままの値を格納したバイト配列を返します。

関連項目:
定数フィールド値

CODE_OCR

public static final int CODE_OCR

コード種別の一つで、OCR によって文字認識を行うことを表します(=4)。

関連項目:
定数フィールド値

CODE_UNKNOWN

public static final int CODE_UNKNOWN

コード種別の一つで、コード種別が不明であることを表します(=-1)。
このコード種別を setCode(int) メソッドに指定することはできません。 コード認識に失敗した場合(何かしらのコードであることも認識できない場合)や、 コード認識機能が中断した場合に getResultCode() メソッドから返されます。

コード認識の結果、コード種別が不明だった場合、 getResultType() メソッドは常に TYPE_UNKNOWN を返します。

関連項目:
定数フィールド値

CODE_UNSUPPORTED

public static final int CODE_UNSUPPORTED

コード種別の一つで、サポートされていないコードであることを表します(=-2)。
このコード種別を setCode(int) メソッドに指定することはできません。 何かしらのコードであることは認識できるけど、 そのコードからデータを取り出すことはできない場合に getResultCode() メソッドから返されます。

コード認識の結果、サポートされていないコードだった場合、 getResultType() メソッドは常に TYPE_UNKNOWN を返します。

関連項目:
定数フィールド値

TYPE_BINARY

public static final int TYPE_BINARY
コードの内容の型の一つで、バイナリであることを表します(=0)。 エンコードとしてバイナリであるコードを読み取った場合に返されます。

関連項目:
定数フィールド値

TYPE_NUMBER

public static final int TYPE_NUMBER
コードの内容の型の一つで、数字のみの文字列であることを表します(=1)。 エンコードとして数字のみであるコードを読み取った場合に返されます。

関連項目:
定数フィールド値

TYPE_ASCII

public static final int TYPE_ASCII
コードの内容の型の一つで、ASCII 文字列であることを表します(=2)。 エンコードとして ASCII 文字(英数字と記号)のみであるコードを読み取った場合に返されます。

関連項目:
定数フィールド値

TYPE_STRING

public static final int TYPE_STRING
コードの内容の型の一つで、文字列であることを表します(=3)。 エンコードとして TYPE_NUMBERTYPE_ASCII ではない文字(例えば漢字など)を含むコードを読み取った場合に返されます。

関連項目:
定数フィールド値

TYPE_UNKNOWN

public static final int TYPE_UNKNOWN
コードの内容の型の一つで、型が不明であることを表します(=-1)。

関連項目:
定数フィールド値
コンストラクタの詳細

CodeReader

protected CodeReader()
アプリケーションが直接このクラスのインスタンスを生成することはできません。

メソッドの詳細

getCodeReader

public static CodeReader getCodeReader(int id)

コード認識オブジェクトを取得します。

カメラIDに対してこのメソッドが初めて呼ばれた場合はオブジェクトを生成して返します。 生成直後のコード認識オブジェクトは認識結果を保持していない状態になっています。 以後、同じカメラIDに対しては、常に同じオブジェクトへの参照を返します。

パラメータ:
id - カメラIDを指定します。 カメラIDについてはcom.nttdocomo.device.Camera.getCamera(int)メソッドを参照してください。
戻り値:
コード認識オブジェクトを返します。
例外:
IllegalArgumentException - 引数idに負の値が指定された場合、 またはJavaから制御可能なカメラデバイスの台数以上の値が指定された場合に発生します。
DeviceException - カメラデバイスを確保できない場合に発生します(NO_RESOURCES)。

getAvailableCodes

public int[] getAvailableCodes()
認識可能なコードの種別を取得します。

戻り値:
認識可能なコード種別の配列を返します。

setCode

public void setCode(int code)
認識を行うコードの種別を設定します。 デフォルトのコード種別は機種依存です。

パラメータ:
code - 認識を行うコードの種別を設定します。
例外:
IllegalArgumentException - 引数 code に不正な値が指定された場合に発生します。 CODE_UNKNOWNCODE_UNSUPPORTED が指定された場合も含まれます。
IllegalArgumentException - 引数codeにサポートしていないコード種別が指定された場合に発生します。

read

public void read()
          throws InterruptedOperationException

カメラデバイスを使用してコード認識を行います。 このメソッドが呼び出されると、Javaアプリケーションはサスペンドし、 ネイティブアプリケーションのコード認識機能が起動します。 コード認識機能が終了するとJavaアプリケーションはレジュームします。

ユーザの操作によりコード認識機能が終了すると、 Javaアプリケーションがレジュームした時点でこのメソッドから復帰します。 ユーザがコード認識機能で認識行った場合は、コード認識オブジェクト内にその認識結果が保持されます。 ユーザがコード認識を中断したり、あるいはコード認識に失敗した場合は、 コード認識オブジェクト内にコード認識結果は保持されません。 なお、本メソッドを呼び出す前に保持していたコード認識結果は、 本メソッドを呼び出した時点ですべて破棄されます。

コード認識機能が競合などで中断した場合には、 Javaアプリケーションがレジューム復帰した時点で例外が発生します。 このとき、コード認識結果は保持されません。

例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
DeviceException - マルチタスク機能によってバックグラウンドで動作しているネイティブ機能が未保存のデータを保持している場合に、 ユーザ確認においてユーザが当該データの破棄を拒否すると発生します(BUSY_RESOURCE)。
InterruptedOperationException - コード認識機能が中断した場合に発生します。
DeviceException - リソース不足によりコード認識に失敗した場合に発生します(NO_RESOURCES)。
DeviceException - リソース不足以外の理由によりコード認識に失敗した場合に発生します(UNDEFINED)。

getResultCode

public int getResultCode()
認識を行ったコードの種別を取得します。 特定のコード種別を指定して認識を行った場合も、 CODE_AUTO を指定して自動でコード種別の識別を行った場合も、 認識に成功したコード種別を返します。

戻り値:
認識を行ったコードの種別を返します。 コード認識を行う前に呼び出された場合やコード認識に失敗した場合、コード認識機能が中断した場合は CODE_UNKNOWN を返します。

getResultType

public int getResultType()
認識を行ったコードの内容の型を取得します。 コード認識結果をアプリケーションで解析する際のヒントとして使用することができます。

戻り値:
認識を行ったコードの内容の型を返します。 コード認識を行う前に呼び出された場合やコード認識に失敗した場合、コード認識機能が中断した場合は TYPE_UNKNOWN を返します。

getBytes

public byte[] getBytes()
コード認識結果をバイト列として取得します。 このメソッドは、認識を行ったコードの内容の型にかかわらず、 コード認識の結果の生データをそのままバイト列として返します。

戻り値:
コード認識の結果をバイト列として返します。 コード認識を行う前に呼び出された場合やコード認識に失敗した場合、コード認識機能が中断した場合は null を返します。

getString

public String getString()
コード認識結果を文字列として取得します。 このメソッドは、認識を行ったコードの内容の型にかかわらず、 コード認識の結果のバイト列をプラットフォームのデフォルトの文字エンコーディングを使って文字列に変換したものを返します。 すなわち、new String(getBytes()) したのと同じ結果が返ります。

戻り値:
コード認識の結果を文字列として返します。 コード認識を行う前に呼び出された場合やコード認識に失敗した場合、コード認識機能が中断した場合は null を返します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。