首页 理论教育 获取位置更新信息请求

获取位置更新信息请求

时间:2023-06-30 理论教育 版权反馈
【摘要】:调用Location Manager 的request Location Updates()表示请求接收位置更新,需要传递一个Location Listener给它。传递给它的Location Listener必须实现几个回调函数,然后当用户位置更新或服务状态改变时,Location Manager就能够调用这些方法来进行应用程序方面的处理。如果想由GPS提供位置更新,那么把“NETWORK_PROVIDER”更换为“GPS_PROVIDER”。为了能够从“NETWORK_PROVIDER”或者“GPS_PROVIDER”接收位置更新,必须通过声明“ACCESS_COARSE_LOCATION”或者“ACCESS_FINE_LOCATION”权限来请求用户权限。

获取位置更新信息请求

Android是通过回调函数来获取用户位置的。调用Location Manager 的request Location Updates()表示请求接收位置更新,需要传递一个Location Listener给它。传递给它的Location Listener必须实现几个回调函数,然后当用户位置更新或服务状态改变时,Location Manager就能够调用这些方法来进行应用程序方面的处理。

下面的示例代码展示了怎样定义Location Listener和请求一个位置更新:

reuest Location Updates()方法的第一个参数是位置提供者的类型,在这种情况下,使用的是基于基塔和Wi-Fi的网络位置提供商。

能够使用第二个和第三个参数来控制Listener接收更新的频率,第二个参数是两次位置提醒之间的最小时间间隔,第三个是两次位置提醒之间的最小变化距离;两个都设置为“0”,表示以最快的频率更新。最后一个参数是Location Listener。

如果想由GPS提供位置更新,那么把“NETWORK_PROVIDER”更换为“GPS_PROVIDER”。如果调用requestLocationUpdates()两次,一次使用“NETWORK_PROVIDER”,一次使用“GPS_PROVIDER”,那么就可以从网络位置提供商和GPS获取用户当前位置。(www.xing528.com)

为了能够从“NETWORK_PROVIDER”或者“GPS_PROVIDER”接收位置更新,必须通过声明“ACCESS_COARSE_LOCATION”或者“ACCESS_FINE_LOCATION”权限来请求用户权限。这些都是在Android manifest文件中设置的。例如:

没有这些权限,应用程序在运行时无法获取位置更新。

如果使用“NETWORK_PROVIDER”和“GPS_PROVIDER”,那么请使用“ACCESS_FINE_LOCATION”权限;

如果只使用“NETWORK_PROVIDER”,那么使用“ACCESS_COARSE_LOCATION”权限。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈