智能客服
你问我答,随时在线为你解决问题

























用户打开应用进入相关位置信息显示的页面,无法通过执行相关操作获取当前位置信息。包括但不限于:
主要涉及的接口 | 功能描述 |
|---|---|
判断位置服务是否已经开启。 | |
获取当前位置。 | |
获取最近一次定位结果。 | |
开启位置变化订阅,并发起定位请求。 |
如果应用在后台运行时也需要访问设备位置,除了按照上述申请权限外,还需要申请LOCATION类型的长时任务。
接口 | 相关请求参数(设置优先级信息和场景) | 描述 |
|---|---|---|
on('locationChange') | 位置信息请求参数。 | |
on('locationChange') | 持续定位的请求参数。 | |
getCurrentLocation | 当前位置信息请求参数。 | |
getCurrentLocation | 单次定位的请求参数。 |
由于未声明或未授予定位权限导致的定位失败,包括下列三种情况:
位置权限请求属于Web前端页面发起的,由于未通过onGeolocationShow接口对网站进行位置权限管理(或设置不正确),并响应结果赋予前端页面权限导致的定位失败。
参考申请位置权限,实现用户点击前端页面"获取位置"按钮,Web组件通过弹窗通知应用侧位置权限请求消息。
Q:3301200定位失败,未获取到定位结果,错误信息:Failed to obtain the geographical location.
A:请参考错误码3301200的可能原因和解决方案。
Q:位置请求参数中maxAccuracy如何设置?
A:maxAccuracy是应用向系统请求位置信息时要求的精度值,当位置信息Location中的精度值(accuracy)小于等于maxAccuracy时,位置信息会返回给应用;否则系统将丢弃本次收到的位置信息。详情参考LocationRequest中对maxAccuracy的描述。
Q:在室内等特殊场地时,在持续定位场景中设置LocationRequest的timeInterval为1,为何不生效?
A:在室内因为没有GNSS信号,返回的是网络位置。因为WLAN扫描有较大的功耗,系统限制20秒扫描一次,因此在室内即使timeInterval设置为1,也只能20秒获取到一次位置。
Q:系统缓存位置信息不准确,使用getCurrentLocation()接口获取当前定位信息后,再使用getLastLocation()接口获取缓存定位信息,两次获取的定位信息不一致。
A:所有应用共用系统中的同一份缓存定位信息,有可能在两次接口调用之间有其他应用发起定位,刷新了系统中的缓存定位信息。可以对比获取定位信息的时间,根据时间判断缓存定位信息是否更新。
Q:开启飞行模式,是否可以获取设备当前定位信息?
A:开启飞行模式或者无网络场景下,会使用GPS进行定位,室内可能无GPS信息,需要空旷无遮挡的室外环境。
Q:位置定位中,如何获取当前定位的城市?
A:导入geoLocationManager模块,先调用isGeoServiceAvailable查询正地理编码与逆地理编码服务是否可用,确认服务可用后调用逆地理编码服务接口getAddressesFromLocation把经纬度坐标转化为地理位置信息,从回调中获得与此坐标匹配的GeoAddress(地理编码地址信息)列表,其中locality表示城市信息。
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功