1

Google의 fusedlocationapi를 Android의 현재 위도와 경도를 얻기 위해 사용하고 있습니다. 이제는 사용 사례에 따라 사용자가 클릭 할 때만 사용자의 현재 위치를 얻고 싶습니다. 버튼으로, 이제는 시간 간격을두고 위치 업데이트를 요청하는 대신 다른 것을 사용하여 내 사용자의 배터리가 많이 소모되지 않을 것임을 알았습니다. 그래서 나는 많은 게시물을 다른 커뮤니티에서도 검색했습니다. 그러나 아무것도 유용한 것을 찾지 못했습니다. 이제는 아무도 내 유스 케이스에서 작동하는 무언가를 어떻게 찾을 수 있는지 말해 주실 수 있습니다.fusedlocationapi를 사용하여 시간 간격을두고 위치 업데이트를 요청하지 않고 위치를 얻습니다.

답변

1

당신이

LocationRequest mLocationRequest = new LocationRequest(); 
    mLocationRequest.setInterval(1000); 
    mLocationRequest.setFastestInterval(1001); 
    mLocationRequest.setNumUpdates(1); 
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new com.google.android.gms.location.LocationListener() { 
      @Override 
      public void onLocationChanged(Location location) { 
       LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); 
       // save your location here 

      } 
     }); 
+0

예 내가 같은 일에 대해 생각의 위치를 ​​얻을 수 있지만, 사용자가 버튼을 다시 클릭 할 때 문제가 전 업데이트 된 위치를 가져 싶지만에 따라 다음 때 당신은 단지 위치 업데이트를 제거 할 수 있습니다 귀하의 코드는 현재 위치 업데이트를 요청하지 않기 때문에 마지막 위치를 제공합니다. 내가 잘못된 방향으로 생각하고 있다면 나를 바로 잡으십시오. –

+0

사용자가 다시 클릭하면이 기능을 다시 시작하고 업데이트 된 위치를 저장합니다. –

+0

예. 위치를 가져 오는 데는 약 5 초 정도 걸리지 만 그다지 지연되지는 않습니다. 실제 앱에서는 어떻게 할 수 있습니까? Zomato 등)를 클릭하면 자동으로 위치를 가져옵니다. 시간 지연이 없다 ?? –