|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.docomostar.device.location.GyroSensor
public class GyroSensor
ジャイロセンサ機能を提供します。
ジャイロセンサ機能は、角速度を取得する機能を提供します。
計測データの種類については、GyroData
クラスを参照して下さい。
計測を行うにはあらかじめ setEnabled(boolean)
メソッドで
ジャイロセンサ機能を有効化しておく必要があります。
角速度の計測方法としては、現在の角速度値を得るワンショット計測と、 周期的に連続して角速度値を得る周期計測を提供します。 周期計測では、実装内部の計測データ蓄積バッファに計測結果を蓄積します。 アプリケーションは周期計測中あるいは計測後に蓄積バッファ内の計測結果を取得できます。
計測結果は、GyroData オブジェクトを介して取得できます。
GyroData オブジェクトは
ワンショット計測
用、
周期計測(全データ)
用、
周期計測(最新データ)
用に各 1 つずつ生成され、
計測結果は各オブジェクトが保持する配列に格納されます。
周期計測中に、ワンショット計測
、
周期計測開始
を行うと例外が発生します。
周期計測中に Canvas の座標系を変更する(Canvas2 を使用する)場合、 蓄積バッファ内のデータの一貫性が保証されなくなるため、 Star アプリが期待する計測結果が得られない場合があります。 Star アプリが期待する結果を得るためには、 一度周期計測を停止した上で蓄積バッファからデータを取得してから、 Canvas の座標系を変更し、周期計測を再開して下さい。
フィールドの概要 | |
---|---|
static int |
ANGULAR_VELOCITY_X
計測データの種類を示す値で、X 軸回りの角速度を表します(=1)。 |
static int |
ANGULAR_VELOCITY_Y
計測データの種類を示す値で、Y 軸回りの角速度を表します(=2)。 |
static int |
ANGULAR_VELOCITY_Z
計測データの種類を示す値で、Z 軸回りの角速度を表します(=3)。 |
コンストラクタの概要 | |
---|---|
protected |
GyroSensor()
アプリケーションが直接このコンストラクタを呼び出して オブジェクトを生成することはできません。 |
メソッドの概要 | |
---|---|
void |
disposeData()
周期計測用の蓄積バッファをクリアします。 |
int[] |
getAvailableData()
実装がサポートしている計測データの種類を取得します。 |
GyroData |
getCurrentData()
現在の角速度を計測し、結果を取得します(ワンショット計測)。 |
GyroData |
getData()
周期計測用の蓄積データバッファから計測結果を取得します。 |
int |
getDataSize()
周期計測用の蓄積データバッファに蓄積されているデータ数を取得します。 |
static GyroSensor |
getGyroSensor()
ジャイロセンサ機能のインスタンスを返します。 |
int |
getIntervalResolution()
周期計測の計測間隔の解像度を取得します。 |
int |
getMaxDataSize()
周期計測において実装内部で蓄積可能な最大データ数を取得します。 |
int |
getMaxDataValue(int type)
計測データの最大値を取得します。 |
int |
getMinDataValue(int type)
計測データの最小値を取得します。 |
GyroData |
peekLatestData()
周期計測用の蓄積データバッファから最新の計測値を1つ取得します。 |
void |
setEnabled(boolean enabled)
ジャイロセンサ機能を有効化・無効化します。 |
void |
start(int interval,
boolean continuance)
周期計測を開始します。 |
void |
stop()
周期計測を停止します。 |
クラス Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int ANGULAR_VELOCITY_X
public static final int ANGULAR_VELOCITY_Y
public static final int ANGULAR_VELOCITY_Z
コンストラクタの詳細 |
---|
protected GyroSensor()
メソッドの詳細 |
---|
public static final GyroSensor getGyroSensor()
ジャイロセンサ機能のインスタンスを返します。
複数回呼び出された場合は、常に同じインスタンスを返します。
初期状態では、ジャイロセンサ機能は計測停止状態です。
実装によっては、ジャイロセンサ機能をサポートしていない場合があります。
UnsupportedOperationException
-
DeviceException
- public int[] getAvailableData()
実装がサポートしている計測データの種類を取得します。
ANGULAR_VELOCITY_X
、 ANGULAR_VELOCITY_Y
、 ANGULAR_VELOCITY_Z
のうち、
サポートする計測データの種類の値を含む配列を返します。
public int getMinDataValue(int type)
計測データの最小値を取得します。
引数で指定された計測データが取り得る値の最小値を取得可能です。
計測データは、この最小値以上の値になります。
type
- 取得する計測データの種類を指定します。ANGULAR_VELOCITY_X
、
ANGULAR_VELOCITY_Y
、 ANGULAR_VELOCITY_Z
のいずれかを指定します。
IllegalArgumentException
-
public int getMaxDataValue(int type)
計測データの最大値を取得します。
引数で指定された計測データが取り得る値の最大値を取得可能です。
計測データは、この最大値以下の値になります。
type
- 取得する計測データの種類を指定します。ANGULAR_VELOCITY_X
、
ANGULAR_VELOCITY_Y
、 ANGULAR_VELOCITY_Z
のいずれかを指定します。
IllegalArgumentException
-
public GyroData getCurrentData()
GyroData オブジェクトが保持する配列の値を、
ワンショット計測結果で上書きします。
その後、この GyroData オブジェクトへの参照を返します。
常に同じオブジェクトへの参照を返します。
返されるオブジェクトは、
getData()
,
peekLatestData()
とは異なります。
本メソッドの実行に成功すると、 周期計測用の計測結果蓄積バッファはクリアされます。
IllegalStateException
-
DeviceException
- public void start(int interval, boolean continuance)
周期計測を開始します。指定した間隔毎に周期計測を行います。
実装がサポートしている計測間隔は、getIntervalResolution()
で得られる解像度の倍数です。
実装サポート値以外の計測間隔を指定した場合、指定した値以上で最も実装サポート値に近い値が指定されたものとして扱われます。
周期計測中にアプリケーションがサスペンドした場合に、
周期計測を継続するかどうかを指定することができます。
引数 continuance に、周期計測を継続する場合は true、
周期計測を停止する場合は false を指定します。
サスペンド時に周期計測を停止する場合、周期計測を再開させるためにはレジューム処理において、
再度本メソッドを呼び出して下さい。
サスペンド前の計測値は getData()
により取得して下さい。
端末がサスペンド発生時における周期計測の継続をサポートしていない場合、
引数 continuance に true を指定して本メソッドを呼び出すと、
UnsupportedOperationException が発生します。
計測結果は、実装内部の計測結果蓄積バッファに蓄積されていきます。
蓄積可能な最大データ数は、getMaxDataSize()
により取得できます。
最大データ数を超えると、蓄積されたデータの古いものから上書きします。
計測結果は、 getData() により、周期計測中および周期計測後に取得できます。
蓄積された計測結果は、次にワンショット計測、周期計測を行った場合、また disposeData()
、 getData()
を呼び出した場合、アプリケーションを終了した場合にクリアされます。
周期計測を停止させるためには、stop()
メソッドを使用します。
サスペンド時に周期計測を継続している場合も含め、
アプリケーションが終了した場合、周期計測は停止します。
また、周期計測中にジャイロセンサ機能が無効化された場合、
周期計測は停止します。
getCurrentData()
メソッド呼び出し中に
別のスレッドからこのメソッドが呼び出された場合、
getCurrentData() 呼び出し終了までこの
メソッドの実行は遅延されます。
本メソッドの実行に成功すると、周期計測用の蓄積バッファはクリアされます。
interval
- 周期計測の間隔をミリ秒単位で指定します。continuance
- サスペンド時に周期計測を継続するかどうかを指定します。
UnsupportedOperationException
-
IllegalArgumentException
-
IllegalStateException
-
DeviceException
- public void stop()
周期計測を停止します。
周期計測中以外に呼ばれた場合、何もしません。
start(int, boolean)
public int getIntervalResolution()
周期計測の計測間隔の解像度を取得します。
このメソッドにより得られる値の自然数倍の計測間隔をサポートします。
start(int, boolean)
public int getMaxDataSize()
周期計測において実装内部で蓄積可能な最大データ数を取得します。
周期計測は、最大データ数を超えると蓄積されたデータの古いものから上書きします。
start(int, boolean)