位置情報ツールを使用して、Android のモバイル デバイスの現在の緯度と経度を取得するにはどうすればよいですか?
ベストアンサー1
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
の呼び出しはブロックしません。つまり、現在利用可能なポジションがない場合はgetLastKnownLocation()
戻ります。そのため、null
LocationListener
にrequestLocationUpdates()
方法代わりに、位置情報の非同期更新が提供されます。
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);
申請書には、ACCESS_FINE_LOCATION
許可GPSを使用する場合。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
また、ACCESS_COARSE_LOCATION
許可GPSが利用できない場合は、getBestProvider()
方法。