com.docomostar.device
クラス CodeReader

Object
  上位を拡張 com.docomostar.device.CodeReader

public class CodeReader
extends Object

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

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

Star アプリからのフォーカス切り替えをサポートしているかどうかは機種依存です。 Star アプリからのフォーカス切り替えをサポートする場合、 ネイティブ起動中にユーザ操作により、 Star アプリで設定したフォーカスを変更することができます。 なお、Star アプリからネイティブ起動する場合、CodeReader オブジェクト内のフォーカス設定がネイティブに渡されますが、 ネイティブ起動中に行われたフォーカス設定は、CodeReader オブジェクト内には保持されません。

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

フィールドの概要
static int CODE_128
           コード種別の一つで、Code 128 (JIS X 0504・ISO/IEC 15417) を表します(=11)。
static int CODE_128_AIM
           Code 128 コード種別の一つで、 AIM Inc. 用に割りあてられたコードであることを表します(=13)。
static int CODE_128_GENERIC
           Code 128 コード種別の一つで、 その他の Code 128 コードであることを表します(=14)。
static int CODE_128_GS1
           Code 128 コード種別の一つで、GS1-128 (旧称 EAN/UCC-128) であることを表します(=12)。
static int CODE_39 [iアプリオプションAPI]
          コード種別の一つで、 CODE-39 を表します(=8)。
static int CODE_AUTO [iアプリオプションAPI]
           コード種別の一つで、自動でコード種別の識別を行うことを表します(=0)。
static int CODE_JAN13
           コード種別の一つで、JAN13 規格のコードを表します(=2)。
static int CODE_JAN8
           コード種別の一つで、JAN8 規格のコードを表します(=1)。
static int CODE_NW7 [iアプリオプションAPI]
          コード種別の一つで、 NW-7 コードを表します(=7)。
static int CODE_OCR [iアプリオプションAPI]
           コード種別の一つで、OCR によって文字認識を行うことを表します(=4)。
static int CODE_QR
           コード種別の一つで、QRコードを表します(=3)。
static int CODE_UNKNOWN
           コード種別の一つで、コード種別が不明であることを表します(=-1)。
static int CODE_UNSUPPORTED [iアプリオプションAPI]
           コード種別の一つで、サポートされていないコードであることを表します(=-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()
          認識可能なコードの種別を取得します。
 int[] getAvailableFocusModes()
          端末で設定できるフォーカスの種類のリストを取得します。
 byte[] getBytes()
          コード認識結果をバイト列として取得します。
static CodeReader getCodeReader(int id)
           コード認識オブジェクトを取得します。
 int getFocusMode()
          フォーカスの設定状態を取得します。
 int getResultCode()
          認識を行ったコードの種別を取得します。
 int getResultType()
          認識を行ったコードの内容の型を取得します。
 String getString()
          コード認識結果を文字列として取得します。
 void read()
           カメラデバイスを使用してコード認識を行います。
 void setCode(int code)
          認識を行うコードの種別を設定します。
 void setFocusMode(int mode) [iアプリオプションAPI]
          フォーカスを設定します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CODE_AUTO

public static final int CODE_AUTO [iアプリオプションAPI]

コード種別の一つで、自動でコード種別の識別を行うことを表します(=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コードに含まれるモードの組み合わせによって以下の表の値を返します。 QRコードにおけるモードの定義については JIS X 0510 を参照すること。
数字モード英数字モード漢字モードバイナリモードメソッドの戻り値
ありなしなしなし 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 [iアプリオプションAPI]

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

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

CODE_NW7

public static final int CODE_NW7 [iアプリオプションAPI]
コード種別の一つで、 NW-7 コードを表します(=7)。

コード認識に成功した場合、 getResultType() メソッドは、 常に TYPE_ASCII を返します。 また、getBytes() メソッドは、 それぞれの文字に対応する ASCII コードを格納したバイト配列を返します。

文字ASCIIコード
数字0〜90x30〜0x39
特殊記号-0x2d
$0x24
:0x3a
/0x2f
.0x2e
+0x2b
スタート/ストップキャラクタA〜D0x41〜0x44

チェックデジットは無しとみなします。

認識を行うコードの種別に CODE_AUTO を指定した場合、このコードが自動識別されるかどうかは機種依存です。

端末によっては、このコード種別による認識をサポートしていない場合があります。

関連項目:
setCode(int), 定数フィールド値

CODE_39

public static final int CODE_39 [iアプリオプションAPI]
コード種別の一つで、 CODE-39 を表します(=8)。

コード認識に成功した場合、 getResultType() メソッドは、 常に TYPE_ASCII を返します。 また、getBytes() メソッドは、 それぞれの文字に対応する ASCII コードを格納したバイト配列を返します。

文字ASCIIコード
英数字0〜9, A〜Z0x30〜0x39, 0x41〜0x5a
特殊記号-0x2d
.0x2e
スペース0x20
$0x24
/0x2f
+0x2b
%0x25
スタート/ストップキャラクタ*0x2a

Full ASCII ではない、基本的な CODE-39 です。 チェックデジットは無しとみなします。

認識を行うコードの種別に CODE_AUTO を指定した場合、このコードが自動識別されるかどうかは機種依存です。

端末によっては、このコード種別による認識をサポートしていない場合があります。

関連項目:
setCode(int), 定数フィールド値

CODE_128

public static final int CODE_128

コード種別の一つで、Code 128 (JIS X 0504・ISO/IEC 15417) を表します(=11)。
このコード種別は setCode(int) 専用です。 getResultCode() の戻り値となることはありません。

このコードの認識に成功した場合、 認識した Code 128 バーコードが、 JIS X 0504 附属書Bに規定されている以下のどの種別に該当するかを判定し、 その結果を getResultCode() の戻り値として返します。

また、getBytes() メソッドは、 コードセットの解釈がなされた後の、それぞれの文字に対応する ASCII コードを格納したバイト配列を返します。 返されるバイト配列には、以下のシンボルキャラクタは含まれません。

一方、ファンクションキャラクタの解釈は一切行われずに、以下 の対応表に従ったバイト値に置換され、バイト配列に格納されます。 特に、FNC1 が GROUP SEPARATOR (ASCII コード 0x1D) に変換されない点に注意してください。

ファンクションキャラクタの種類置換されるバイト値
FNC10xF1
FNC20xF2
FNC30xF3
FNC40xF4

getResultType() は、getBytes() の戻り値に格納されているバイト値の種類によって、以下の値を返します。

数字(0x30〜0x39) のみで構成されている場合:
TYPE_NUMBER
ASCII 図形文字 (0x20〜0x7E) のみで構成されている場合:
TYPE_ASCII
上記以外の場合:
TYPE_BINARY

getString() は、他のコードを認識させた場合と同様に new String(getBytes()) したものと同じ結果を返します。 そのため、ASCII 制御コードやファンクションキャラクタが含まれる場合 (getResultType() が TYPE_BINARY の場合) にどのような文字列が返されるかは機種依存であることに注意してください。

関連項目:
"JIS X 0504", CODE_128_GS1, CODE_128_AIM, CODE_128_GENERIC, 定数フィールド値

CODE_128_GS1

public static final int CODE_128_GS1

Code 128 コード種別の一つで、GS1-128 (旧称 EAN/UCC-128) であることを表します(=12)。

Code 128 バーコードを認識させた結果、 その内容が GS1-128 に準拠していた場合に、 getResultCode() の戻り値として、この値が返されます。

この値を setCode(int) で指定することも可能です。 その場合は、CODE_128 を指定した場合と同様に振る舞います。

Code 128 バーコードを認識させた場合の振る舞いの詳細は、 CODE_128 の説明を参照してください。

関連項目:
CODE_128, CODE_128_AIM, CODE_128_GENERIC, 定数フィールド値

CODE_128_AIM

public static final int CODE_128_AIM

Code 128 コード種別の一つで、 AIM Inc. 用に割りあてられたコードであることを表します(=13)。

Code 128 バーコードを認識させた結果、 その内容が、JIS X 0504 附属書B に規定されている 「AIM Inc. 用に割りあてられたコード」 であった場合に、 getResultCode() の戻り値として、この値が返されます。

この値を setCode(int) で指定することも可能です。 その場合は、CODE_128 を指定した場合と同様に振る舞います。

Code 128 バーコードを認識させた場合の振る舞いの詳細は、 CODE_128 の説明を参照してください。

関連項目:
CODE_128, CODE_128_GS1, CODE_128_GENERIC, 定数フィールド値

CODE_128_GENERIC

public static final int CODE_128_GENERIC

Code 128 コード種別の一つで、 その他の Code 128 コードであることを表します(=14)。

Code 128 バーコードを認識させた結果、 GS1-128 でも AIM Inc. 用に割りあてられたコードでも無い場合に、 getResultCode() の戻り値として、この値が返されます。

この値を setCode(int) で指定することも可能です。 その場合は、CODE_128 を指定した場合と同様に振る舞います。

Code 128 バーコードを認識させた場合の振る舞いの詳細は、 CODE_128 の説明を参照してください。

関連項目:
CODE_128, CODE_128_GS1, CODE_128_AIM, 定数フィールド値

CODE_UNKNOWN

public static final int CODE_UNKNOWN

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

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

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

CODE_UNSUPPORTED

public static final int CODE_UNSUPPORTED [iアプリオプションAPI]

コード種別の一つで、サポートされていないコードであることを表します(=-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_NUMBER や TYPE_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については Camera.getCamera(int) メソッドを参照してください。
戻り値:
コード認識オブジェクトを返します。
例外:
UnsupportedOperationException -
引数 id に、 カメラ機能はサポートしているが、 コード認識機能はサポートしていないようなカメラ ID が指定された場合に発生します。
IllegalArgumentException -
引数idに負の値が指定された場合、 またはJavaから制御可能なカメラデバイスの台数以上の値が指定された場合に発生します。
DeviceException -
(NO_RESOURCES)
カメラデバイスを確保できない場合に発生します。

getAvailableCodes

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

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

setCode

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

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

read

public void read()
          throws InterruptedOperationException

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

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

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

例外:
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、 コード認識機能が起動できない場合に発生します。
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 を返します。

getAvailableFocusModes

public int[] getAvailableFocusModes()
端末で設定できるフォーカスの種類のリストを取得します。

リストの値は、 Camera クラスで定義されているフォーカスの種類の定数になります。

フォーカス切り替えをサポートしていない実装では、 長さ 1 の配列が返されます。 その配列に格納されている値は以下の通りです。

フォーカス切り替えがハードウェアによる機構である場合には、 このメソッドは new int[] {Camera.FOCUS_HARDWARE_SWITCH} を返します。 この場合、Star アプリからフォーカス制御することはできません。

戻り値:
端末で設定できるフォーカスの種類をリストで返します。

setFocusMode

public void setFocusMode(int mode) [iアプリオプションAPI]
フォーカスを設定します。

getAvailableFocusModes()で取得したリストから任意の値を設定します。

指定する値は、 Camera クラスで定義されているフォーカスの種類の定数になります。

Camera クラスで定義されていない定数、 または、リストにない値を指定した場合には例外が発生します。

フォーカス切り替えがハードウェアによる機構である場合には、 引数 mode に Camera.FOCUS_HARDWARE_SWITCH が指定された場合は何も行わずに無視されます。

パラメータ:
mode - フォーカスの種類の値を指定します。
例外:
IllegalArgumentException -
引数 mode に不正な値が指定された場合に発生します。

getFocusMode

public int getFocusMode()
フォーカスの設定状態を取得します。

取得した値は、 Camera クラスで定義されているフォーカスの種類の定数になります。

一度も setFocusMode(int) を呼び出していない状態で、 このメソッドを呼び出した場合に、どのような値が取得されるかは機種依存です。

フォーカス切り替えをサポートしていない実装では、 以下の値が返されます。

フォーカス切り替えがハードウェアによる機構である場合には、 このメソッドは Camera.FOCUS_HARDWARE_SWITCH を返します。 この場合、Star アプリからフォーカス制御することはできません。

戻り値:
フォーカスの設定状態を返します。


NTT DOCOMO,INC.

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

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

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

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

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。