如何在 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中文网其他相关文章!