2015-11-24 27 views
2

我對谷歌地圖應用程序的工作,我使用谷歌的融合位置提供尋找currentlocation,我試圖requestlocationupdates但是當我使用GPS和locationrequest優先HIGH_ACCURACY問題我面對,我的電池越來越排水速度非常快這就是爲什麼我想改變我的locationrequest優先BALANCED_POWER但沒有GPS我無法得到緯度和經度,但在谷歌文檔,他們沒有GPS提到的也應該工作,請回復Fusionlocationprovider不無GPS工作在Android的

代碼:

_googleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(LocationServices.API) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 
_locationRequest = new LocationRequest(); 
_locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); 
    PendingResult<Status> pendingResult = LocationServices.FusedLocationApi.requestLocationUpdates(
        _googleApiClient, _locationRequest,this); 
+0

你能設法達到你想要的嗎?我很好奇,如果它確實對你的工作.. – cgr

回答

1

PRIORITY_BALANCED_POWER_ACCURAC Y只根據google文檔獲取基於網絡的位置。它只需要ACCESS_COARSE_LOCATION,這意味着它僅基於網絡而不是GPS獲取位置。看看this post

,如果你想使用GPS你應該去HIGH_ACCURACY位置。根據你的要求,如果地圖,它是有道理的。您不應該忘記在不需要時刪除位置更新。在你的情況下,我想你應該停止當你的活動去背景..可以在onStop()或onPause()。閱讀Location Strategies瞭解更多信息。

+0

,但我需要使用high_accuracy電池消耗正在發生的事情,所以我想用balance_power_accuracy,但我沒有在谷歌地圖獲得的位置,如果我關掉跟蹤人的位置,每15分鐘gps – skyshine

+0

即使你保持gps打開,我想(我大部分在閱讀doc後肯定)你不會收到任何地點。所以你必須以較少的麻煩去做HIGH_ACCURACY,或者用BALANCED來減少準確性。否則,您可以將兩者結合起來 - 在前臺,您可以使用HIGH_ACC準備LocationRequest,並且當應用程序進入後臺時,您可以使用BALANCED準備新的LocationRequest。 如果是15分鐘一次,我不認爲它會如此滔滔不絕。您是否通過HIGH_ACCURACY和15分鐘頻率進行了功耗測試,以瞭解您的應用消耗了多少? ??? – cgr

+0

它對你有幫助。你可以投票,讓其他人也可以有信心考慮他們的工作答案。 – cgr