GPS機能を利用する場合は、LocationManagerクラスを使用します。
LocationListenerインタフェースを実装するだけで、簡単に位置情報を取得できます。
import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.location.LocationProvider; public class MyClass extends Activity implements LocationListener{ @Override public void onCreate(Bundle savedInstanceState){ try{ LocationManager lm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,this); }catch(Exception e){ } } // 移動 public void onLocationChanged(Location location){ double lat = location.getLatitude(); double lon = location.getLongitude(); float speed = location.getSpeed(); // [m/s] long time = location.getTime(); // [s] } // GPS使用不可 public void onProviderDisabled(String provider){ } // GPS使用可能 public void onProviderEnabled(String provider){ } // ステータス変更 public void onStatusChanged(String provider,int status,Bundle extras){ switch(status){ case LocationProvider.AVAILABLE: case LocationProvider.TEMPORARILY_UNAVAILABLE: case LocationProvider.OUT_OF_SERVICE: } } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.myclass" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyClass" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> // GPSへのアクセスを許容 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> // テスト用位置情報へのアクセスを許容 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-sdk android:minSdkVersion="4" /> </manifest>
参考: GPSのエミュレーション
コメント