com.docomostar.opt.device
クラス PhysicalActivityData

Object
  上位を拡張 com.docomostar.opt.device.PhysicalActivityData

public class PhysicalActivityData
extends Object

身体活動情報を表すクラスです。 このオブジェクトは、 1日分の活動量をエクササイズという単位(後述)で保持しています。 ここで言う「1日分」とは、ネイティブ身体活動量計で管理しているタイムゾーンにおいて、当該日付の 00:00:00(00時00分00秒)から24:00:00の時間帯を指し、 00:00:00の瞬間は含み、24:00:00の瞬間は含まないものとします。

内部的には、活動量は、00:00:00から getInterval() 秒ごとのエクササイズ値を配列(以降では、 この配列のことを内部配列と呼びます)として保持しています。 具体的には、配列の第 n 要素には、 (t * n) 秒後から (t * (n + 1)) 秒後までの活動量(エクササイズ)が格納されています。 ここで、t は getInterval() の戻り値とし、 各時間帯の右端 ((t * (n + 1))秒後の瞬間) は含まないものとします。
例えば、t = 3600(1時間)である場合は、以下のようになります。

以降では、内部配列の第 n 要素における、 活動量の計測対象となっている時間帯のことを、 単純に、内部配列の第 n 要素における計測対象時間帯 と呼ぶことにします。上記の例では、 内部配列の第1要素における計測対象時間帯は 「01:00:00から02:00:00まで(02:00:00は含まない)」 となります。

また、ネイティブ身体活動量計の利用設定がオフである間の活動量は0であるとみなされます。

このクラスのインスタンスが保持している身体活動情報は、 getExercise メソッドにより、 身体活動の量を表す「エクササイズ」で取得することができます。 エクササイズとは、METs (運動強度)に運動時間 [h] を掛けたもので、単位は Ex (エクササイズ) です。 すなわち、1.0 METs の運動を 1.0 時間継続した場合の身体活動量が 1.0 Ex となります。

導入されたバージョン:
Star-1.1

フィールドの概要
static String FILTER_AEROBICS
           エクササイズの抽出条件の一つで、有酸素運動によって生じたエクササイズであることを表します(="aerobics")。
static String FILTER_NONE
           エクササイズの抽出条件の一つで、抽出条件がないことを表します(="none")。
 
メソッドの概要
 String[] getAvailableFilter()
           端末がサポートしているエクササイズの抽出条件を返します。
 java.util.Calendar getCalendar()
           このオブジェクトの持つ日付(タイムゾーンを含む)の Calendar オブジェクトを取得します。
 java.util.Date getDate()
          推奨されていません。 Date オブジェクトから身体活動情報の日付を得ることが困難であるため、 getCalendar() を利用してください。
 float getExercise()
          このオブジェクトが保持しているエクササイズの総計(1日分)を取得します。
 float getExercise(java.util.Calendar time, int range)
           引数で指定した時間帯における、 エクササイズの合計を取得します。
 float getExercise(java.util.Calendar time, int range, String filter)
           抽出条件を指定して、 ある時間帯におけるエクササイズの合計を取得します。
 float getExercise(java.util.Date time, int range)
          推奨されていません。 引数 time に設定する「エクササイズの合計を開始する時刻」が、 このオブジェクトが持つのタイムゾーンに合った時刻かをチェックすることができないため、 getExercise(Calendar, int) を利用してください。
 float[] getExercise(int cycle)
           このオブジェクトが保持しているエクササイズ(1日分)について、 00:00:00から指定された周期 [秒] ごとのエクササイズを配列として取得します。
 float[] getExercise(int cycle, String filter)
           抽出条件を指定して、 00:00:00 から指定された周期 [秒] ごとのエクササイズを配列として取得します。
 float getExercise(String filter)
           抽出条件を指定して、 エクササイズの総計(1日分)を取得します。
 int getInterval()
           このオブジェクトが保持しているエクササイズの周期(時間間隔) [秒] を取得します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FILTER_NONE

public static final String FILTER_NONE

エクササイズの抽出条件の一つで、抽出条件がないことを表します(="none")。

このフィールドを指定して取得したエクササイズの値は、このオブジェクトが保持しているエクササイズ全体が対象となります。

導入されたバージョン:
Star-1.2
関連項目:
getExercise(String), getExercise(Calendar, int, String), getExercise(int, String), 定数フィールド値

FILTER_AEROBICS

public static final String FILTER_AEROBICS

エクササイズの抽出条件の一つで、有酸素運動によって生じたエクササイズであることを表します(="aerobics")。

このフィールドを指定して取得したエクササイズの値は、このオブジェクトが保持しているエクササイズのうち有酸素運動によって生じたエクササイズのみが対象となります。 有酸素運動とみなされる条件は、機種依存です。

導入されたバージョン:
Star-1.2
関連項目:
getExercise(String), getExercise(Calendar, int, String), getExercise(int, String), 定数フィールド値
メソッドの詳細

getDate

public java.util.Date getDate()
推奨されていません。 Date オブジェクトから身体活動情報の日付を得ることが困難であるため、 getCalendar() を利用してください。

このオブジェクトの持つ日付の Date オブジェクトを取得します。

Date オブジェクトは、 ネイティブ身体活動量計で管理している年月日の 00:00:00 を日時として生成されます。

このメソッドを複数回呼び出した場合、 呼び出す度に新しい Date インスタンスが生成され、 そのインスタンスへの参照が返されます。

戻り値:
このオブジェクトの持つ日付を表す Date オブジェクトを返します。

getCalendar

public java.util.Calendar getCalendar()

このオブジェクトの持つ日付(タイムゾーンを含む)の Calendar オブジェクトを取得します。

Calendar オブジェクトは、 ネイティブ身体活動量計で管理しているタイムゾーンと年月日の 00:00:00 を日時として生成されます。

このメソッドを複数回呼び出した場合、 呼び出す度に新しい Calendar インスタンスが生成され、 そのインスタンスへの参照が返されます。

戻り値:
このオブジェクトの持つ日付(タイムゾーンを含む)を表す Calendar オブジェクトを返します。
導入されたバージョン:
Star-1.2

getExercise

public float getExercise()
このオブジェクトが保持しているエクササイズの総計(1日分)を取得します。 エクササイズの定義については、 このクラスの説明を参照してください。

戻り値:
このオブジェクトが持っているエクササイズの総計を返します。

getExercise

public float getExercise(java.util.Date time,
                         int range)
推奨されていません。 引数 time に設定する「エクササイズの合計を開始する時刻」が、 このオブジェクトが持つのタイムゾーンに合った時刻かをチェックすることができないため、 getExercise(Calendar, int) を利用してください。

引数で指定した時間帯における、 エクササイズの合計を取得します。

タイムゾーンのチェックがないこと以外は、getExercise(Calendar, int) の振る舞いと同じです。

パラメータ:
time - エクササイズの合計を開始する時刻を指定します。 指定された Date オブジェクトは、ネイティブ身体活動量計で管理しているタイムゾーンとして解釈された上で、 日付部分は無視されます。
range - エクササイズの合計を行う範囲を秒単位で指定します。 getInterval() より小さい値を指定することはできません。
戻り値:
時刻 time からはじまり、その range 秒後までの時間帯(ただし 時刻 time の range 秒後の瞬間は含みません)における、 エクササイズの合計を返します。
例外:
NullPointerException -
引数 time に null が指定された場合に発生します。
IllegalArgumentException -
引数 range が getInterval() よりも小さい場合に発生します。

getExercise

public float getExercise(java.util.Calendar time,
                         int range)

引数で指定した時間帯における、 エクササイズの合計を取得します。
[図] エクササイズの計算方法 エクササイズの合計の、正確な計算方法は以下の通りです。

  1. 内部配列の各要素(エクササイズ値)のうち、 その計測対象時間帯全体が、 引数で指定した時間帯に含まれるものを列挙します。 その結果、 内部配列の第 b 要素から 第 e 要素までが列挙されたこととします。
  2. 内部配列の第 (b - 1) 要素が存在する場合、 その要素の計測対象時間帯が、一部だけでも、 引数で指定した時間帯に含まれるかどうかを調べます。 含まれる場合、その要素の値(エクササイズ値)を Eb とします。 含まれない場合や、当該要素が存在しない場合は、Eb は0とします。
  3. 以下の総和を取ったものを、このメソッドの戻り値とします。
    • 内部配列の第 b 要素から 第 e 要素までの値(エクササイズ値)の総和
    • Eb の値

ここで、引数で指定した時間帯は、 左端(時刻 time)を含み、 右端(time の range 秒後の時刻)は含まないものとします。
エクササイズの定義については、 このクラスの説明を参照してください。

引数で指定する時間帯は、ネイティブ身体活動量計で管理しているタイムゾーンにおいて、日付をまたがってはいけません。 そのような時間帯を指定された場合は、 日付をまたがる直前までの時間帯が指定されたものとみなされます。

指定された時間帯において、 ネイティブ身体活動量計の利用設定の状態がずっとオフであった場合には、このメソッドは0.0を返します。

引数 time に指定する Calender オブジェクトのタイムゾーン ID (java.util.TimeZone.getID()) は、 getCalendar() で取得した Calendar オブジェクトのタイムゾーン ID と一致しなければなりません。

パラメータ:
time - エクササイズの合計を開始する時刻を指定します。 指定された Calendar オブジェクトの日付部分は無視されます。
range - エクササイズの合計を行う範囲を秒単位で指定します。 getInterval() より小さい値を指定することはできません。
戻り値:
時刻 time からはじまり、その range 秒後までの時間帯(ただし 時刻 time の range 秒後の瞬間は含みません)における、 エクササイズの合計を返します。
導入されたバージョン:
Star-1.2
例外:
NullPointerException -
引数 time に null が指定された場合に発生します。
IllegalArgumentException -
Calendar 型の引数のいずれかに、 システムが提供している以外のオブジェクト(Calendar クラスを継承した未知のクラスのオブジェクト)が渡された場合に発生します。
IllegalArgumentException -
引数 time に含まれるタイムゾーンIDが、 このオブジェクトが持つタイムゾーンIDと一致しない場合に発生します。
IllegalArgumentException -
引数 range が getInterval() よりも小さい場合に発生します。

getExercise

public float[] getExercise(int cycle)

このオブジェクトが保持しているエクササイズ(1日分)について、 00:00:00から指定された周期 [秒] ごとのエクササイズを配列として取得します。
ある一定周期ごとのエクササイズの推移を調べたい時に便利です。 例えば、1時間周期のグラフを作成したい場合には getExercise(3600) を呼び出してください。

正確には、戻り値として得られる配列の 第 n 要素には下記の値が格納されています。

getExercise(new Date(getDate().getTime() + cycle * 1000 * n), cycle)

上記定義からも分かるように、引数 cycle には、getInterval() の倍数を指定するようにしてください。 そうでない値を cycle に指定した場合には、 配列の各要素に格納されるエクササイズの値が不均一なってしまうので注意が必要です。

パラメータ:
cycle - 周期を秒単位で指定します。 getInterval() よりも小さい値を指定することはできません。
戻り値:
指定された周期ごとのエクササイズの配列を返します。 このメソッドを呼び出す度に新しく生成した配列を返します。
例外:
IllegalArgumentException -
引数 cycle が getInterval() よりも小さい場合に発生します。

getExercise

public float getExercise(String filter)

抽出条件を指定して、 エクササイズの総計(1日分)を取得します。

引数 filter に FILTER_NONE を指定した場合の振る舞いは、 getExercise() と同様です。

引数 filter に FILTER_NONE 以外を指定した場合、 抽出条件を満たしたエクササイズの総計を返します。 それ以外の振る舞いは、 getExercise() と同様です。

引数 filter に設定することが可能な抽出条件は、 getAvailableFilter() を用いて調べることができます。

パラメータ:
filter - エクササイズの抽出条件を指定します。
戻り値:
指定された抽出条件に応じたエクササイズの総計を返します。
導入されたバージョン:
Star-1.2
関連項目:
FILTER_NONE, FILTER_AEROBICS
例外:
NullPointerException -
引数 filter に null が指定された場合に発生します。
IllegalArgumentException -
引数 filter に端末がサポートしていない値を指定した場合に発生します。

getExercise

public float getExercise(java.util.Calendar time,
                         int range,
                         String filter)

抽出条件を指定して、 ある時間帯におけるエクササイズの合計を取得します。

引数 filter に FILTER_NONE を指定した場合の振る舞いは、 getExercise(Calendar,int) と同様です。

引数 filter に FILTER_NONE 以外を指定した場合、 抽出条件を満たしたエクササイズを返します。 それ以外の振る舞いは、 getExercise(Calendar,int) と同様です。

引数 filter に設定することが可能な抽出条件は、 getAvailableFilter() を用いて調べることができます。

パラメータ:
time - エクササイズの合計を開始する時刻を指定します。 指定された Calendar オブジェクトの日付部分は無視されます。
range - エクササイズの合計を行う範囲を秒単位で指定します。 getInterval() より小さい値を指定することはできません。
filter - エクササイズの抽出条件を指定します。
戻り値:
時刻 time からはじまり、その range 秒後までの時間帯(ただし 時刻 time の range 秒後の瞬間は含みません)における、 指定された抽出条件に応じたエクササイズの合計を返します。
導入されたバージョン:
Star-1.2
関連項目:
FILTER_NONE, FILTER_AEROBICS
例外:
NullPointerException -
引数 time または filter に null が指定された場合に発生します。
IllegalArgumentException -
Calendar 型の引数のいずれかに、 システムが提供している以外のオブジェクト(Calendar クラスを継承した未知のクラスのオブジェクト)が渡された場合に発生します。
IllegalArgumentException -
引数 time に含まれるタイムゾーンIDが、 このオブジェクトが持つタイムゾーンIDと一致しない場合に発生します。
IllegalArgumentException -
引数 range が getInterval() よりも小さい場合に発生します。
IllegalArgumentException -
引数 filter に端末がサポートしていない値を指定した場合に発生します。

getExercise

public float[] getExercise(int cycle,
                           String filter)

抽出条件を指定して、 00:00:00 から指定された周期 [秒] ごとのエクササイズを配列として取得します。

引数 filter に FILTER_NONE を指定した場合の振る舞いは、 getExercise(int) と同様です。

引数 filter に FILTER_NONE 以外を指定した場合、 抽出条件を満たしたエクササイズを返します。 それ以外の振る舞いは、 getExercise(int) と同様です。

引数 filter に設定することが可能な抽出条件は、 getAvailableFilter() を用いて調べることができます。

パラメータ:
cycle - 周期を秒単位で指定します。 getInterval() よりも小さい値を指定することはできません。
filter - エクササイズの抽出条件を指定します。
戻り値:
指定された周期ごとの抽出条件に応じたエクササイズの配列を返します。 このメソッドを呼び出す度に新しく生成した配列を返します。
導入されたバージョン:
Star-1.2
関連項目:
FILTER_NONE, FILTER_AEROBICS
例外:
NullPointerException -
引数 filter に null が指定された場合に発生します。
IllegalArgumentException -
引数 cycle が getInterval() よりも小さい場合に発生します。
IllegalArgumentException -
引数 filter に端末がサポートしていない値を指定した場合に発生します。

getInterval

public int getInterval()

このオブジェクトが保持しているエクササイズの周期(時間間隔) [秒] を取得します。
例えば、(1日分のエクササイズを)1分周期で保持している場合には、 60 [秒]が返ります。 1時間周期の場合には3600 [秒]が返ります。

86400 [秒](1日間の秒数)を、このメソッドの戻り値で割り算することで、 内部配列の要素数がわかります。

周期は実装によって異なります。 また、 このオブジェクトが何日前のデータを保持しているかによっても周期が異なる可能性があります。
たとえば、今日を含めて2日間は1分周期で情報を保持しているが、 3日前以前については 1日の合計値のみ保持する実装の場合は、 今日を含めた2日間は60が返され、 3日前以前については86400(1日間の秒数)が返されることになります。

戻り値:
このオブジェクトが保持しているエクササイズの周期(時間間隔)を、 秒単位で返します。

getAvailableFilter

public String[] getAvailableFilter()

端末がサポートしているエクササイズの抽出条件を返します。

FILTER_NONE, FILTER_AEROBICS のうち、 サポートしているエクササイズの抽出条件の値を含む配列を返します。

戻り値:
端末がサポートしているエクササイズの抽出条件を配列で返します。 返される配列は、このオブジェクトが内部で保持している配列のコピーです。
導入されたバージョン:
Star-1.2


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ドコモの商標または登録商標です。

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