主要涉及的接口 | 功能描述 |
|---|---|
获取当前位置。 | |
获取最近一次定位结果。 | |
开启位置变化订阅,并发起定位请求。 | |
关闭位置变化订阅,并删除对应的定位请求。 |
如果应用在后台运行时也需要访问设备位置,除了申请权限外,还需要申请LOCATION类型的长时任务。
接口 | 相关请求参数(设置优先级信息和场景) | 描述 |
|---|---|---|
on('locationChange') | 位置信息请求参数。 | |
on('locationChange') | 持续定位的请求参数。 | |
getCurrentLocation() | 当前位置信息请求参数。 | |
getCurrentLocation() | 单次定位的请求参数。 |
打开应用进入定位信息页面,使用UI布局结合背景知识中相关API接口分析定位信息的获取逻辑。
使用getCurrentLocation()接口是异步获取当前定位,同时定位服务(GNSS定位、基站定位、WLAN/蓝牙定位)需要时间来获取位置,可能由于场地、网络等原因导致定位信息获取延迟,影响用户体验。
单次定位场景,优先使用getLastLocation()接口获取系统缓存的最新位置,可以减少系统功耗(如果系统当前没有缓存位置会返回错误码)。
如果对位置的新鲜度比较敏感,可以先获取缓存位置,将位置中的时间戳与当前时间对比,若新鲜度不满足预期可以使用getCurrentLocation()再去获取。
优化定位请求参数,根据LocationRequestScenario位置请求中定位场景类型和LocationRequestPriority位置请求中位置信息优先级类型介绍,采用合理的定位策略优化用户体验。