如何在 Android 中使用 NETWORK Provider 取得目前位置
在 Android 中擷取目前位置是行動應用程式的常見任務。然而,在使用 NETWORK 提供者時,了解底層機制至關重要。在本文中,我們將探討為什麼問題中提供的原始程式碼在使用 NETWORK 提供者時沒有更新位置。
原始程式碼的問題
原始程式碼利用 LocationManager 來要求位置更新。雖然它可以正確處理 GPS 定位,但無法正確處理 NETWORK 定位。這是因為程式碼沒有定義 LocationListener 來處理位置變更。
定義 LocationListener
為了接收位置更新,您需要定義一個 LocationListener目的。每當位置改變時就會呼叫該物件。以下程式碼片段示範如何執行此操作:
private final LocationListener mLocationListener = new LocationListener() { @Override public void onLocationChanged(Location location) { // Your code here to handle the location change } };
請求位置更新
定義 LocationListener 後,您需要從 LocationManager 請求位置更新。以下程式碼片段顯示如何向GPS 提供者要求更新:
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, mLocationListener);
同樣,要向NETWORK 提供者要求更新,請使用以下程式碼:
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, mLocationListener);
權限聲明
不要忘記在AndroidManifest.xml 檔案中宣告適當的權限。要使用NETWORK 提供程序,您需要以下權限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
結論
透過定義LocationListener 並向NETWORK 提供者要求位置更新,您現在可以使用Android應用程式中的NETWORK 提供者成功檢索目前位置。
以上是為什麼我的 Android 應用程式不使用網路提供者更新位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!