簡體   English   中英

如何強制Android重新讀取GPS位置?

[英]How enforce Android to re-read GPS position?

我嘗試編寫應用程序,該應用程序在單擊按鈕時顯示GPS坐標。

@Override
public void onClick(View arg0) {
    EditText editText;
    editText = (EditText) findViewById(R.id.editText1);
    LocationManager locationManager;
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Location location = locationManager.getLastKnownLocation("gps");
    editText.setText(location.toString());
}

問題:第一次使用GPS讀取時間獲得位置坐標時,第二次單擊獲得相同位置。 即使我停止程序並再次運行,它也會獲得相同的位置! 如何強制刷新閱讀GPS?

第一次我得到的位置坐標與GPS讀取時間有關,第二次單擊則獲得相同的位置

這不足為奇。

即使我停止程序並再次運行,它也會獲得相同的位置!

這也不足為奇。

如何強制刷新閱讀GPS?

一般來說,您不需要。 不需要僅因為您請求最后一個已知位置就必須對設備進行全新更新。 提供新的位置定位信息在物理上可能是不可能的。 而且,如果您不調用requestLocationUpdates() ,則getLastKnownLocation()很可能僅返回null

您請求requestLocationUpdates()參數可能會影響設備嘗試更新GPS的積極程度,而不是節省電量。 但是,沒有任何保證。

在獲取位置之前,請嘗試使用此代碼來獲取可用於獲取位置數據的最佳提供商。

Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);

並在您的getLastKnownLocation傳遞最佳的位置提供程序來獲取這樣的位置

 Location location = locationManager.getLastKnownLocation(bestProvider );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM