com.nttdocomo.opt.device
クラス FingerSensor

Object
  |
  +--com.nttdocomo.opt.device.FingerSensor

public class FingerSensor
extends Object

携帯電話の指紋センサをナビゲーションモードで利用するための手段を提供します。

指紋センサは、以下の2つのモードで利用することができますが、 このクラスはナビゲーションモードで利用するための手段を提供します。

指紋認証モードで提供される機能は、FingerprintAuthenticator クラスで提供される機能と同等です。ナビゲーションモードを無効にしている状態では、 デバイスは指紋認証モードになっていますが、ナビゲーションモードが有効であっても、 FingerprintAuthenticator.authenticate() などの指紋認証関連メソッドの利用によりアプリケーションがサスペンドすると、 強制的にナビゲーションモードから指紋認証モードに切り換わります。

指紋センサは、カレントのフレームが Canvas の時のみナビゲーションモードで利用することができます。 指紋センサをナビゲーションモードで利用するアプリケーションは、 getFingerSensor() メソッドを利用して FingerSensor クラスのただ 1 つのオブジェクトを取得します。 setEnabled(boolean) メソッドを呼び出してナビゲーションモードを有効にすると、 周期的に低レベルイベントが発生するようになります。 イベントの発生周期(指紋センサがセンスを行う周期)は DEV_SENSE_INTERVAL 属性によって設定することができます。 また、デフォルトでは指を動かさなかった場合でも周期的にイベントが発生しますが、 DEV_NULL_EVENT_NOTIFICATION 属性によって指が動かされなかった場合のイベント通知を抑止することもできます。

低レベルイベントのパラメータは、指の移動量に関する情報を含む機種依存の値です。 パラメータから横方向の移動量や縦方向の移動量を取り出すには getSenseData(int, int) メソッドを使用します。 以下に、指紋センサを有効にしてイベントの通知を受け、パラメータから移動量を取り出すコード例を示します。

 public void init() {
   ・
   ・
   // 指紋センサオブジェクトを取得
   FingerSensor fs = FingerSensor.getFingerSensor();
   // ナビゲーションモードを有効化
   fs.setEnabled(true);
   ・
   ・
 }
 
 public void processEvent(int type, int param) {
   int deltaX, deltaY;
 
   switch(type) {
     ・
     ・
   case Display.FINGER_MOVED_EVENT: 
     // 移動量を取得
     deltaX = fs.getSenseData(param, FingerSensor.DATA_DELTA_X);
     deltaY = fs.getSenseData(param, FingerSensor.DATA_DELTA_Y);
     ・
     ・
     break;
     ・
     ・
   }
 }
 

待ち受け実行時の活性化状態では指紋センサをナビゲーションモードで使うことが可能ですが、 非活性化状態・休眠状態に遷移した場合はナビゲーションモードは無効になり、 活性化状態に復帰しても自動的に有効になることはありません。 また、サスペンド状態から復帰した場合にも、 待ち受け実行時かどうかにかかわらず自動的にナビゲーションモードは無効になります。

端末によってサポートされていない場合があります。 未サポートの場合、メソッドが呼び出された時点でUnsupportedOperationExceptionが発生します。

導入されたバージョン:
DoJa-3.0 (505iS以降)

フィールドの概要
static int ATTR_NULL_EVENT_OFF
           イベント通知の属性値で、指が動かされなかった時にイベントを通知しないことを表します(=0)。
static int ATTR_NULL_EVENT_ON
           イベント通知の属性値で、指が動かされなかった時にもイベントを通知することを表します(=1)。
static int DATA_DELTA_X
           指紋センサのイベントパラメータから横方向の移動量取得することを表します(=0)。
static int DATA_DELTA_Y
           指紋センサのイベントパラメータから縦方向の移動量を取得することを表します(=1)。
static int DEV_NULL_EVENT_NOTIFICATION
           指が動かされなかった場合にイベントを通知するかどうかを表す属性です。
static int DEV_SENSE_INTERVAL
           指紋センサが指の動きをセンスする間隔を表す属性です(=0)。
 
コンストラクタの概要
protected FingerSensor()
           アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。
 
メソッドの概要
 int getAttribute(int attr)
           指紋センサに関する属性を取得します。
static FingerSensor getFingerSensor()
           指紋センサオブジェクトを取得します。
 int getSenseData(int param, int data)
           指紋センサから通知されたイベントパラメータから情報を取り出します。
 boolean isAvailable(int attr)
           指紋センサの属性が設定可能かどうかを調べます。
 void setAttribute(int attr, int value)
           指紋センサに関する属性を設定します。
 void setEnabled(boolean b)
           指紋センサのナビゲーションモードの有効/無効を切り換えます。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEV_SENSE_INTERVAL

public static final int DEV_SENSE_INTERVAL
指紋センサが指の動きをセンスする間隔を表す属性です(=0)。 属性値にはセンスする間隔をミリ秒単位で指定します。 指紋センサがサポートする間隔の下限/上限を超える値を設定しようとした場合にはそれぞれ下限/上限の値に設定されます。
属性の制御と取得が可能です。

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

DEV_NULL_EVENT_NOTIFICATION

public static final int DEV_NULL_EVENT_NOTIFICATION
指が動かされなかった場合にイベントを通知するかどうかを表す属性です。(=1)。 デフォルトでは指が動かされなかった場合でもイベント通知を行います。
属性の制御と取得が可能です。

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

ATTR_NULL_EVENT_OFF

public static final int ATTR_NULL_EVENT_OFF
イベント通知の属性値で、指が動かされなかった時にイベントを通知しないことを表します(=0)。

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

ATTR_NULL_EVENT_ON

public static final int ATTR_NULL_EVENT_ON
イベント通知の属性値で、指が動かされなかった時にもイベントを通知することを表します(=1)。

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

DATA_DELTA_X

public static final int DATA_DELTA_X
指紋センサのイベントパラメータから横方向の移動量取得することを表します(=0)。

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

DATA_DELTA_Y

public static final int DATA_DELTA_Y
指紋センサのイベントパラメータから縦方向の移動量を取得することを表します(=1)。

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

FingerSensor

protected FingerSensor()
アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。

メソッドの詳細

getFingerSensor

public static FingerSensor getFingerSensor()

指紋センサオブジェクトを取得します。

このメソッドが初めて呼ばれた場合はオブジェクトを生成して返します。 生成直後はナビゲーションモードは無効な状態になっています。 以後、常に同じオブジェクトへの参照を返します。

戻り値:
指紋センサオブジェクトを返します。

setAttribute

public void setAttribute(int attr,
                         int value)
指紋センサに関する属性を設定します。 端末の設定によって指紋センサの制御が制限されている場合はその制限に従います。 制御可能でない属性、存在しない属性が指定された場合は何も行わずに無視します。

パラメータ:
attr - 指紋センサの属性の種類を指定します。
value - 指紋センサの属性に設定する属性値を指定します。
例外:
IllegalArgumentException - 引数 attr で指定された有効な属性に対して、 引数 value に不正な属性値が指定された場合に発生します。

getAttribute

public int getAttribute(int attr)
指紋センサに関する属性を取得します。 存在しない属性が指定された場合は -1 を返します。

パラメータ:
attr - 指紋センサの属性の種類を指定します。
戻り値:
指紋センサの属性値を返します。

isAvailable

public boolean isAvailable(int attr)
指紋センサの属性が設定可能かどうかを調べます。 このメソッドが true を返した場合は、 その属性を setAttribute(int, int) メソッドで設定することが可能です。 指紋センサがその属性の設定をサポートしていない場合や、 携帯電話の設定によってその属性の設定が制限されている場合はfalseを返します。

パラメータ:
attr - 指紋センサの属性の種類を指定します。
戻り値:
属性を設定可能な場合はtrueを、そうでなければfalseを返します。

setEnabled

public void setEnabled(boolean b)

指紋センサのナビゲーションモードの有効/無効を切り換えます。 デフォルトではナビゲーションモードは無効になっています。

このメソッドの設定はカレントのフレームを切り替えても影響を受けません。 すなわち、Canvas の表示中にナビゲーションモードを有効にして、 それから Panel に切り替えた後に再度 Canvas をカレントのフレームに設定した場合でも、 ナビゲーションモードは有効なままになります。

パラメータ:
b - ナビゲーションモードを有効にする場合はtrueを、 無効にする場合はfalseを指定します。
例外:
com.nttdocomo.lang.IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。

getSenseData

public int getSenseData(int param,
                        int data)
指紋センサから通知されたイベントパラメータから情報を取り出します。 横方向の移動量と縦方向の移動量を取得することができます。

パラメータ:
param - Canvas.processEvent メソッドの第2引数に渡されたイベントのパラメータを指定します。
data - イベントのパラメータから取得する情報の種類を指定します。
戻り値:
指紋センサの情報を返します。
例外:
IllegalArgumentException - 引数 param に指紋センサがサポートしていないイベントパラメータが指定された場合に発生します。
IllegalArgumentException - 引数 data に不正な値が指定された場合に発生します。


NTT DoCoMo,Inc.

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

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

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