com.nttdocomo.opt.device
クラス Pulsemeter

Object
  拡張com.nttdocomo.opt.device.Pulsemeter

public class Pulsemeter
extends Object

脈拍計機能を定義します。
携帯電話のカメラ機能を使用して、脈拍数の測定を行います。 脈拍計機能はカメラ機能、コード認識機能、動作認識機能と同じカメラデバイスを使います。 ネイティブのカメラ機能およびコード認識機能が起動している場合には、脈拍計機能を利用することはできません。 脈拍測定開始時に例外が発生します。

脈拍計機能では、以下のように状態を定義します。

状態説明
START脈拍を測定中の状態
STOP脈拍を測定中でない状態

start() メソッドにより START 状態になると、脈拍計機能は STOP 状態になるまで脈拍を測定し続けます。 getPulserate() メソッドにより測定した脈拍値を読み出す場合、 start() メソッド呼び出し後 最初に脈拍数が確定するまでの間は -1 が返り、その後は getPulserate() メソッド呼び出し時点で最新の計測値を返します。

脈拍計機能が START 状態から STOP 状態になるには以下の場合があります。
1. stop() が呼び出された場合
2. iアプリがサスペンドまたは待ち受け非活性状態に遷移した場合
3. START 状態中に予期せぬエラーにより測定が不可能となった場合

導入されたバージョン:
DoJa-5.1 (906i)

フィールドの概要
static int STATUS_BAD_POSITION
          状態情報を示す値で、指の置き方が悪いことを表します(=3)。
static int STATUS_BRIGHT
          状態情報を示す値で、明るすぎることを表します(=2)。
static int STATUS_DARK
          状態情報を示す値で、暗すぎることを表します(=1)。
static int STATUS_NO_FINGER
          状態情報を示す値で、指が置かれていないことを表します(=4)。
static int STATUS_NONE
          状態情報を示す値で、正常に測定が行われていることを表します(=0)。
static int STATUS_STOP
          状態情報を示す値で、測定が行われていないことを表します(=5)。
 
メソッドの概要
static Pulsemeter getPulsemeter(int id)
          Pulsemeter オブジェクトを取得します。
 int getPulserate()
          測定した脈拍値を取得します。
 int getStatus()
          測定中の状態情報を取得します。
 void start()
          脈拍測定を開始します。
 void stop()
          脈拍測定を停止します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

STATUS_NONE

public static final int STATUS_NONE
状態情報を示す値で、正常に測定が行われていることを表します(=0)。

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

STATUS_DARK

public static final int STATUS_DARK
状態情報を示す値で、暗すぎることを表します(=1)。
この値が返った場合は、ユーザに明るくするよう促す必要があります。

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

STATUS_BRIGHT

public static final int STATUS_BRIGHT
状態情報を示す値で、明るすぎることを表します(=2)。
この値が返った場合は、ユーザに暗くするよう促す必要があります。

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

STATUS_BAD_POSITION

public static final int STATUS_BAD_POSITION
状態情報を示す値で、指の置き方が悪いことを表します(=3)。
この値が返った場合は、ユーザに指の置き方を変えるよう促す必要があります。

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

STATUS_NO_FINGER

public static final int STATUS_NO_FINGER
状態情報を示す値で、指が置かれていないことを表します(=4)。
この値が返った場合は、ユーザに指を置くよう促す必要があります。

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

STATUS_STOP

public static final int STATUS_STOP
状態情報を示す値で、測定が行われていないことを表します(=5)。

関連項目:
getStatus(), 定数フィールド値
メソッドの詳細

getPulsemeter

public static Pulsemeter getPulsemeter(int id)
Pulsemeter オブジェクトを取得します。
カメラ ID に対してこのメソッドが初めて呼ばれた場合はオブジェクトを生成して返します。 以後、同じカメラ ID に対しては、常に同じオブジェクトへの参照を返します。

パラメータ:
id - カメラ ID を指定します。カメラ ID については Camera.getCamera(int) メソッドを参照してください。
戻り値:
Pulsemeter オブジェクトを返します。
例外:
com.nttdocomo.lang.UnsupportedOperationException - 引数 id に、カメラ機能はサポートしているが、脈拍計機能はサポートしていないようなカメラ ID が指定された場合に発生します。
IllegalArgumentException - 引数 id に負の値が指定された場合、または Java から制御可能なカメラデバイスの台数以上の値が指定された場合に発生します。

start

public void start()
脈拍測定を開始します。
このメソッドを実行すると、ネイティブのカメラを起動し、脈拍を測定中の状態( START 状態 )にします。 同時に複数の Pulsemeter オブジェクトを START 状態にすることはできません。 ある Pulsemeter オブジェクトが START 状態の場合に、別の Pulsemeter オブジェクトの start() を実行した場合、 例外が発生します。ただし、同じ Pulsemeter オブジェクトに対して再度 start() を実行した場合には、後発の start() は無視されます。

例外:
com.nttdocomo.lang.IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
com.nttdocomo.device.DeviceException - 別の Pulsemeter オブジェクトや GestureReader オブジェクトが既に START 状態である場合に発生します (BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - リソースの確保に失敗した場合に発生します (BUSY_RESOURCE)。
com.nttdocomo.device.DeviceException - リソース不足により、脈拍測定の起動に失敗した場合に発生します (NO_RESOURCES)。
com.nttdocomo.device.DeviceException - サスペンド状態に遷移した場合に発生します (INTERRUPTED)。
com.nttdocomo.device.DeviceException - ネイティブのカメラ機能またはコードリーダ機能起動中のため、脈拍測定を実行できない場合に発生します (RACE_CONDITION)。
com.nttdocomo.device.DeviceException - ネイティブのカメラ機能またはコードリーダ機能起動中以外の理由により、脈拍測定を実行できない場合に発生します (UNDEFINED)。

stop

public void stop()
脈拍測定を停止します。
このメソッドを実行すると、ネイティブのカメラを停止し、脈拍を測定中でない状態( STOP 状態)にします。 脈拍測定を完全に停止させるまでの間、このメソッドはブロックされます。
脈拍計機能が STOP 状態で、このメソッドを呼んでも無視されます。

例外:
com.nttdocomo.device.DeviceException - 脈拍測定の停止に失敗した場合に発生します (UNDEFINED)。

getStatus

public int getStatus()
測定中の状態情報を取得します。
脈拍計機能が START 状態で、このメソッドを呼ぶと測定中の状態情報を取得することが できます。脈拍計機能が STOP 状態で、このメソッドを呼ぶと STATUS_STOP が返されます。

戻り値:
測定中の状態情報を返します。

getPulserate

public int getPulserate()
測定した脈拍値を取得します。
脈拍値は1分間の脈拍数で返します。start() メソッド呼び出しから最初に測定値が確定するまでの間は本メソッドにて -1 を返します。最初に測定値が確定した後はメソッド呼び出し時点で最新の測定値を返します。 STOP 状態で本メソッドを呼び出すと、直前の測定で得られた最新の値を返します。未測定の場合または測定値が確定する前に 停止された場合は -1 を返します。測定中に、予期せぬエラーが発生したりサスペンドや非活性化により STOP 状態になった場合に、 本メソッドを呼び出すと例外が発生します。

戻り値:
測定した脈拍値を1分間の脈拍数で返します。ただし、測定値が確定していない場合は -1 を返します。
例外:
com.nttdocomo.device.DeviceException - 測定中にサスペンドや非活性状態になり STOP 状態になった場合に発生します (INTERRUPTED)。
com.nttdocomo.device.DeviceException - 測定中にエラーが発生して STOP 状態になった場合に発生します (UNDEFINED)。


NTT DOCOMO,INC.

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

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

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

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