com.nttdocomo.device.location
クラス GPSLocationProvider

Object
  拡張com.nttdocomo.device.location.LocationProvider
      拡張com.nttdocomo.device.location.GPSLocationProvider

public final class GPSLocationProvider
extends LocationProvider
 [iアプリオプションAPI]

主に GPS を用いる測位機能を表すクラスです。
このクラスの実装では、GPS よりも高い精度の結果を得るために、 適宜他の手段による測位が行われる場合があります。

このクラスのインスタンスを得るには LocationProvider.getLocationProvider(int) を、 引数に LocationProvider.METHOD_GPS を指定して呼び出して下さい。

インスタンス取得後の振る舞いの概要については、 スーパークラスの記述を参照して下さい。

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

フィールドの概要
static int MODE_STANDALONE
           測位モードを表す定数値で、自律測位を行うことを表します(=2)。
 
クラス com.nttdocomo.device.location.LocationProvider から継承したフィールド
CAPABILITY_TRACKING_MODE, DATUM_TOKYO, DATUM_WGS84, METHOD_GPS, MODE_QUALITY_PRIORITY, MODE_STANDARD, UNIT_DEGREE, UNIT_DMS, UNIT_DMS_2
 
メソッドの概要
 int[] getAvailableMeasurementMode()
           設定可能な測位モードを取得します。
 Location getLocation(int timeout)
           主に GPS を使って測位を行います。
 int getMinimalInterval()
           定期的な測位を実施するときに指定可能な、測位間隔の最小値を取得します。
 void interrupt()
           測位を中断させます。
 void setMeasurementMode(int mode)
           測位モードを指定します。
 
クラス com.nttdocomo.device.location.LocationProvider から継承したメソッド
getAvailableLocationMethod, getAvailableLocationMethod, getLocation, getLocationProvider, getLocationProvider, getMeasurementMode, setTrackingListener
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

MODE_STANDALONE

public static final int MODE_STANDALONE

測位モードを表す定数値で、自律測位を行うことを表します(=2)。

LocationProvider.getLocation() を呼び出した際に、 基地局からのアシストデータ無しに測位を行います。 そのため、圏外でも測位できるというメリットが有りますが、 測位精度や測位にかかる時間は、他のモードに比べて劣ります。

関連項目:
getAvailableMeasurementMode(), setMeasurementMode(int), LocationProvider.MODE_QUALITY_PRIORITY, LocationProvider.MODE_STANDARD, 定数フィールド値
メソッドの詳細

getLocation

public Location getLocation(int timeout)
                     throws LocationException

主に GPS を使って測位を行います。 このメソッドを呼び出したスレッドは、測位が終了するまでブロックされます。

測位が正常終了すると、測位結果が設定された位置情報オブジェクト (Location オブジェクト)を返します。 測位結果は常に WGS84 測地系に基づいています。すなわち、 返された Location オブジェクトに対して Location.getDatum() を呼び出すと、 常に LocationProvider.DATUM_WGS84 が返されます。 また、現在の実装では、測位結果として得られる緯度・経度の単位は常に DEGREE 単位です。

測位開始から引数で指定した時間が経過すると、タイムアウトします。 サポートされているタイムアウト値の範囲を超えた値を指定した場合、 その上限または下限のタイムアウト値が指定されます。

自律測位モード下では、 通話圏外でも測位が可能です。
[DoJa-5.1 (906i) 以降] 自律測位モード下では、 セルフモード中でも測位が可能です。

自律測位モード以外の測位モードにおいては、 GPS による測位結果の精度が悪いか、 期待できない場合には、適宜、その他の手段を用いて測位を実施し、 その結果を返す場合があります。 自律測位モード以外の測位モードでタイムアウトした場合、 タイムアウトした時点で取得している測位結果のうち、 最良の精度の測位結果を返します。

定義:
クラス LocationProvider 内の getLocation
パラメータ:
timeout - タイムアウト値を秒単位で指定します。 0を指定した場合、 サポートされているタイムアウト値の上限が指定されます。 上限がない場合、タイムアウトしません。
戻り値:
位置情報オブジェクトを返します。
例外:
IllegalArgumentException - 引数 timeout に負の値が指定された場合に発生します。
DeviceException - 現在実行中の Java アプリケーションで、setTrackingListener(TrackingListener, int, int) の引数 listener に、 null 以外が設定されている場合に発生します(BUSY_RESOURCE)。
DeviceException - 現在実行中の Java アプリケーションや、ネイティブ機能において、 既に測位実施中の場合に発生します(BUSY_RESOURCE)。
LocationException - 端末がセルフモードの場合に発生します(SELF_MODE)。
[DoJa-5.1 (906i) 以降] ただし、自律測位モード下では発生しません。
SecurityException - ロック機能などのネイティブ独自のセキュリティ設定により、 測位が禁止されている場合に発生します。
LocationException - 圏外またはGPS圏外などにより測位に失敗した場合に発生します (OUT_OF_SERVICE)。
LocationException - このメソッドを呼び出してから、 引数に指定したタイムアウト値だけ経過しても、 測位結果が得られない場合に発生します(TIMEOUT)。
LocationException - サスペンド状態に遷移した場合や、 interrupt() メソッド等により中断要求が発生した場合に発生します (INTERRUPTED)。
LocationException - ユーザ操作により中断要求が発生した場合 に発生します(USER_ABORT)。
LocationException - 通信エラー等により、測位に失敗した場合に発生します(UNDEFINED)。

interrupt

public void interrupt()
クラス LocationProvider の記述:

測位を中断させます。 このインスタンスの LocationProvider.getLocation() メソッド にて測位を行っている場合にこのメソッドを呼び出すと、測位が中断されます。 中断されたスレッドは LocationException(INTERRUPTED) が発生します。

測位が行われていないときに呼び出された場合は、 このメソッドはなにもしません。 また、別のインスタンスに対する LocationProvider.getLocation() メソッド呼び出しは、 影響を受けません。

定義:
クラス LocationProvider 内の interrupt

setMeasurementMode

public void setMeasurementMode(int mode)

測位モードを指定します。

それぞれの測位モードを指定した場合の測位時の振る舞いについては、 フィールドの詳細を参照してください。

測位モードには、 getAvailableMeasurementMode() によって返される配列の各要素の値を指定することができます。 それ以外の値を指定した場合は、 不正な値が指定されたとして例外が発生します。

指定を行わなかった場合の測位モードは、デフォルト値の LocationProvider.MODE_STANDARD です。

オーバーライド:
クラス LocationProvider 内の setMeasurementMode
パラメータ:
mode - 測位モードを表す定数値を指定します。
例外:
IllegalArgumentException - 引数 mode に不正な値が指定された場合に発生します。

getAvailableMeasurementMode

public int[] getAvailableMeasurementMode()

設定可能な測位モードを取得します。

このメソッドによって取得した配列の各要素の値は、 setMeasurementMode(int) の引数に設定することにより、 その値が表す測位モードで Java アプリケーションからの測位を行えることが保証されています。

[DoJa-4.0LE]
戻り値は、new int[] {MODE_STANDARD, MODE_QUALITY_PRIORITY} が返されます。
[DoJa-5.0 (903i) 以降]
戻り値を modes とすると、 modes[0]MODE_STANDARD であることは保証されています。 実装によっては他の測位モードをサポートしていない場合があります。 その場合、 未サポートの測位モードに対応する MODE_ から始まる定数は、 配列 modes 中には含まれていません。

定義:
クラス LocationProvider 内の getAvailableMeasurementMode
戻り値:
設定可能な測位モードを表す定数値(このクラス(またはスーパクラス)で定義されている MODE_ から始まる定数)を一次元配列で返します。 返される配列は、 このオブジェクトが内部で保持している配列のコピーです。

getMinimalInterval

public int getMinimalInterval()
クラス LocationProvider の記述:

定期的な測位を実施するときに指定可能な、測位間隔の最小値を取得します。

トラッキングモードをサポートしていない測位方式のインスタンスでは -1 が返されます。

定義:
クラス LocationProvider 内の getMinimalInterval
戻り値:
定期的な測位について、測位可能な最小の間隔 [msec] を返します。 トラッキングモードをサポートしていない場合は -1 を返します。
関連項目:
LocationProvider.setTrackingListener(TrackingListener, int, int)


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

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