Gps/GPSを使用して緯度経度時刻

逆引きAndroid入門 > 位置情報を取得するには/GPSを使用するには http://www.adakoda.com/android/000125.html

位置情報を取得するには/GPSを使用するには

android.locationパッケージ - LocationManager?クラス、 android.locationパッケージ - LocationListener?インターフェース、 android.locationパッケージ - Locationクラス、 android.locationパッケージ - LocationProvider?クラスを使用します。

LocationManager?

LocationManager?インスタンスを取得するには、Context.getSystemService?(LOCATION_SERVICE)を呼び出します。 位置情報の更新を取得するには、requestLocationUpdates?()を呼び出します。 第1引数には、LocationManager?.GPS_PROVIDER、 第4引数には、LocationListener?インスタンスを渡します。 位置情報の更新の取得が不要になったら、removeUpdates()を呼び出します。 AndroidManifest?.xmlには、以下の定義が必要です。

uses-permission android:name="android.permission.android.permission.ACCESS_FINE_LOCATION"/> ※LocationManager?.GPS_PROVIDERでなく、  LocationManager?.NETWORK_PROVIDERを使用する場合には、ACCESS_COARSE_LOCATIONも必要です。

LocationListener?

GPSの位置情報を取得したいクラスでLocationListener?インターフェースを実装します。 位置情報が更新されると、onLocationChanged?()が呼び出されます。 引数として渡されたLocationを参照することで位置情報の詳細を取得できます。 位置情報のステータスが更新されると、onStatusChanged?()が呼び出されます。

Location

Latitude(緯度)を取得するには、getLatitude()を呼び出します。 Longitude(経度)を取得するには、getLongitude()を呼び出します。 Accuracy(精度)を取得するには、getAccuracy()を呼び出します。 Altitude(標高)を取得するには、getAltitude()を呼び出します。 Timeを取得するには、getTime()を呼び出します。 Speedを取得するには、getSpeed()を呼び出します。 Bearingを取得するには、getBearing()を呼び出します。

サンプルソースコード

package com.adakoda.locationtest;

import android.app.Activity; import android.location.Location; import android.location.LocationListener?; import android.location.LocationManager?; import android.location.LocationProvider?; import android.os.Bundle; import android.util.Log;

public class LocationTestActivity? extends Activity implements LocationListener? {

private LocationManager mLocationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
}
@Override
protected void onResume() {
if (mLocationManager != null) {
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
this);
}
super.onResume();
}
@Override
protected void onPause() {
if (mLocationManager != null) {
mLocationManager.removeUpdates(this);
}
super.onPause();
}
@Override
public void onLocationChanged(Location location) {
Log.v("----------", "----------");

Log.v("Latitude", String.valueOf(location.getLatitude()));

Log.v("Longitude", String.valueOf(location.getLongitude()));
Log.v("Accuracy", String.valueOf(location.getAccuracy()));
Log.v("Altitude", String.valueOf(location.getAltitude()));
Log.v("Time", String.valueOf(location.getTime()));
Log.v("Speed", String.valueOf(location.getSpeed()));
Log.v("Bearing", String.valueOf(location.getBearing()));
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE:
Log.v("Status", "AVAILABLE");
break;
case LocationProvider.OUT_OF_SERVICE:
Log.v("Status", "OUT_OF_SERVICE");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.v("Status", "TEMPORARILY_UNAVAILABLE");
break;
}
}

} 参考ページ

Context | Android Developers LocationManager? | Android Developers LocationListener? | Android Developers Location | Android Developers LocationProvider? | Android Developers


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-28 (金) 16:21:24 (3962d)