2016-10-30 4 views
0

私は、特定のアクティビティが始まると、1つのフィールドに現在のアドレスを入力する必要があるというアプリがあります。私はgpsを使っている別のアプリが起動されない限り、私がやっているやり方がGPSの座標を更新するかどうか分からない。Google Location ServicesのgetLastLocationメソッドはAndroidアプリでGPSを開始しますか?

住所がある場合は、ジオコーダーでアドレスを取得できます。 GoogleロケーションAPIのgetLastLocationでロケーションを取得できます。

私はチュートリアルの手順に従うと、このようなonCreateでAPIを初期化する場合:私は「感覚を得る

Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 

GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); 

onConnectではこのような最後の位置を取得します最後の既知のアドレスしか取得できませんが、このコードは実際には電話でGPSを起動しません。

onConnectedで位置更新を有効にする必要がありますか?最初に更新の場所を取得すると、または上記のコードが実際にGPSを開始しますか?

答えて

1

getLastLocation方法はGPSを開始せず、最後の場所を取得するだけです。

また、場所の日付を確認して、古いかどうかを検出できます。

古い場所の場合、または新しい場所を取得する場合は、場所のリクエストを行う必要があります。

は私の

private LocationRequest mLocationRequest; 

private void createLocationRequest(){ 
    mLocationRequest = new LocationRequest(); 

    // 0 means here receive location as soon as possible 
    mLocationRequest.setInterval(0); 
    mLocationRequest.setFastestInterval(0); 

    // setNumUpdates(1); stops location requests after receiving 1 location 
    mLocationRequest.setNumUpdates(1); 

    // PRIORITY_HIGH_ACCURACY option uses your GPS 
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
} 

@Override 
public void onLocationChanged(Location location) { 
    // Use new location 
} 
+0

なLocationRequest感謝を考えてみましょう。完璧に今働いている! – MathiasR

関連する問題