次のように GoogleApiClient を使用して現在地の更新をリクエストし、Toasts を使用して実装を検証します。
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
float LOCATION_REFRESH_DISTANCE = 5000;
long LOCATION_REFRESH_TIME = 0;
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, mlocationListener);
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if(mLastLocation!=null){
Toast.makeText(getApplicationContext(), "YES! mLastLocation!=null", Toast.LENGTH_SHORT).show();
double latitude = mLastLocation.getLatitude();
double longitude = mLastLocation.getLongitude();
Toast.makeText(getApplicationContext(), "Latitude = " + latitude + "\nLongitude = " + longitude, Toast.LENGTH_SHORT).show();
}
}
LOCATION_REFRESH_DISTANCE
ここで、変数とLOCATION_REFRESH_TIME
(ミリ秒単位)を使用して、ロケーション リクエストをパラメータ化できます。
もちろん、mLocationListener
GoogleApiClientmGoogleApiClient
が最後に認識された/現在の場所を取得するために必要な LocationListener オブジェクトと、それmLastLocation
を保存する Location オブジェクト (私はそれを と呼びました) が必要です。例えば。:
private Location mLastLocation;
LocationListener mlocationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
mLastLocation=location;
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};