![](/img/trans.png)
[英]How can I use AlarmReceiver to ping GPS location every 10 minutes?
[英]How to update the GPS location for every 10 secs?
我有這些變量,並在onResume方法中進行以下調用:
private Location userLocation;
private GeoPoint point;
private LocationManager manager;
private LocationListener listener = new LocationListenerC();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 25, locationListener);
但是當我在Android模擬器中運行此應用程序時,用戶的位置不會每10秒更新一次。 有人可以幫忙嗎?
參數mindTime
並不意味着您將每 minTime
毫秒接收更新。 這意味着您不會經常收到小於minTime
毫秒的更新,但是沒有指定何時獲取它們。 如果LocationManager
沒有新的位置每10秒給你一次,它根本就不會給出。 只有在有新位置時,您才會收到更新。
你也在使用minDistance
。 25
表示除非設備移動了至少25米,否則您將不會收到新的更新。 模擬器不移動,因此將此參數設置為0
(這意味着更新不取決於用戶是否移動)。
更新率很大程度上取決於用戶位置。 例如,如果用戶在建築物內,則GPS /網絡提供商可能需要一段時間才能從衛星/基站接收更新。 所以你可能會在更長的時間間隔內獲得更新。 但是,如果用戶在室外且設備信號良好,則更新可能會變得非常頻繁(但每10秒鍾只能獲得1次)
如果您希望每10秒獲取一個位置,則可以每10秒調用一次getLastKnownLocation
。 如果沒有來自提供商的更新,則位置可能相同。
我認為,條件必須是,時間是10(最小)秒,距離是25(最小)米。
minDistance參數還可用於控制位置更新的頻率。 如果它大於0,那么位置提供程序將僅在位置至少改變minDistance米時向您的應用程序發送更新,並且至少已經過了minTime毫秒。 但是,位置提供商使用minDistance參數更難以節省功耗,因此minTime應該是節省電池壽命的主要工具。
執行以下操作,如下所示
private Location userLocation;
private GeoPoint point;
private LocationManager manager;
private LocationListener listener = new LocationListenerC();
//Change **locationManager** to **manager**
// and **locationListener** to **listener** in the follwing line
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 25, listener);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.