FAQ

本文导读
展开章节

如果您在下面没有找到需要的问题,请加入Stack Overflow社区参与讨论。

是否支持非华为手机?

支持,目前融合定位和地理围栏特性支持非华为手机集成。

非华为手机集成定位服务时,需要保证HMS Core(APK)定位权限、应用定位权限都设置为始终允许状态,才可以正常定位。

接口调用成功,但获取不到位置信息?

  1. 请确保已经安装了“HMS Core”,且为3.0.0.300及以上版本。
  2. 检查“HMS Core”应用定位权限是否打开。打开设置 > 应用 > 应用管理找到“HMS Core”应用(不同版本的系统可能有差异,如果没找到“HMS Core”,请点击“应用管理”界面右上角的菜单图标,再点击“显示系统进程”,查找“HMS Core”或者华为移动服务)。点击“HMS Core”或者华为移动服务图标,然后在“应用信息”界面打开权限 > 位置信息中查看位置权限开启状态,确保“HMS Core”应用定位权限处于开启状态。如果是在EMUI 10.0或更高版本的设备上,“HMS Core”的定位权限需要是“始终允许”。
  3. 确保待测试应用的定位权限处于开启状态。
  4. 确保下拉通知栏中的“位置信息”开关处于开启状态。
  5. 部分地区GNSS或网络信号较弱,可能导致无法获取位置信息。
  6. 建议设备插卡使用,以便定位服务可以为您提供更精确的位置信息。

通过Location Kit获取用户位置时,返回错误码:-5?

可能未配置混淆文件导致HMS Core SDK混淆,返回错误码-5,请在编译APK前配置混淆脚本

检查设备定位设置无误,使用getLastLocation接口,但获取不到位置信息?

getLastLocation接口是从系统缓存中获取位置信息的,该接口不保证一定可以获取到位置信息。如果获取的位置信息为null,则可能是系统缓存已经被清除;此时先调用requestLocationUpdates接口获取位置信息以刷新缓存,再调用getLastLocation,即可以获取到位置信息。

mock模式对正常定位的影响,如何判断当前位置是否为mock位置?

通过setMockMode(boolean isMockMode)将位置模拟模式设置为true后,定位服务将不再使用GNSS或网络位置,最终返回通过setMockLocation(Location mockLocation)设置的位置信息。需要注意的是,一旦设置为位置模拟模式,将影响该设备上所有使用定位服务的应用的定位功能。因此,当您不再需要进行位置模拟时,请通过setMockMode(boolean isMockMode)将位置模拟模式设置为false。

可以通过mockLocation.getExtras().getBoolean("mockLocation")的返回值来判断当前位置是否为mock位置,返回true则当前位置为mock位置,返回false则为真实位置。

如何根据接口返回值进行问题定位?

通过当调用定位服务的接口失败时,可以通过返回值初步判断问题原因。获得接口返回的Task对象,调用addOnFailureListener(),并重写onFailure(Exception e)方法,打印异常信息e.getMessage,异常信息中包含异常错误码和异常描述。具体的错误码含义请参见通用错误码

地理围栏对手机型号和EMUI版本有哪些要求?

推荐使用EMUI 8.0及以上全量机型。

地理围栏是否受到环境制约,室内和室外是否都能使用?

因为当前下发的都是高精度的地理围栏,采用的是GNSS/Cell作为位置获取方式,因此推荐使用室外围栏,精度更高。

地理围栏建议的半径设置范围是多少?

建议围栏最小半径在200米,小于200米不保证精度。

地理围栏添加个数是否有限制?

对于每个应用,最多可以下发100个围栏。

活动识别对手机型号和EMUI版本有哪些要求?

活动识别支持的EMUI版本:EMUI 9.1.1及以上。

活动识别支持的硬件平台:海思平台Kirin960及以上。

活动识别支持的手机内存:3G以上。

模拟机的支持情况不在如上范围内。

如何提高活动识别的成功率?

活动识别的IN_VEHICLE、ON_BICYCLE模式使用到了cell信息,测试功能时建议插SIM卡并打开5G/4G/3G/2G网络开关。

日志抓取办法?

调用定位服务接口无法获取位置信息,且根据上述步骤难以定位原因。可以抓取运行日志并选择支持 > 技术支持 > 在线提单提交问题,华为支持人员会及时处理。

日志抓取办法如下:

  1. adb连接手机,执行如下命令。
    adb logcat –v time > D:\hwlocation.log
  2. 复现问题场景。
  3. 按“Ctrl+C”完成。

同时请您尽可能记录出现问题的设备型号、EMUI版本号、HMS Core版本号、集成的SDK版本号以及复现问题的步骤,以便技术人员可以更快的为您进行技术定位。

支持最小的SDK版本和系统版本?

minSdkVersion

最低Android版本

最低EMUI版本

19

4.4

5.0

第三方App获取位置信息时,出现HMS Core(APK)的定位权限申请界面?

定位过程中,由于第三方应用触发了HMS Core的的定位服务能力,为了保障第三方应用的定位功能正常运行,需要用户授权HMS Core位置权限,此权限的授予与第三方应用权限授予无关。如使用Android Q版本终端,需要授予HMS Core后台获取位置权限(授权弹框中的始终允许)。

为什么mock模式无法使用?

setMockMode(boolean isMockMode)仅支持华为手机EMUI 5.0及以上版本。

调用HMS Core接口时,返回错误码907135003,如何处理?

通过LocationService、ActivityIdentification创建Client实例时,传入的Context参数不是Activity,调用功能接口时,不会弹出升级提示引导界面,只会返回错误码907135003,此时需要手动升级HMS Core。如果需要拉起升级引导界面,建议传入Activity替代Context,创建Client实例。

高精度定位获取有什么限制?

当前高精度定位只支持在P40系列上使用,并且只在中国大陆提供服务。

海外没有GMS的华为手机,如何打开网络位置服务开关?

打开设置 > 定位服务 > 位置信息服务 > 网络位置服务 > 开启网络位置服务

海外没有GMS的华为手机关闭网络定位时,导航卫星定位是否可用?

没有网络或者手机关闭网络定位时,不影响导航卫星定位功能的使用。

HMS Core定位权限选择“仅使用期间允许”,定位功能不可用?

HMS Core是后台服务,需要得到用户“始终允许”的定位权限,才能够正常使用定位功能。

为什么室内定位时间比较长?

用户在室内时,大多数情况下,导航卫星不能够有效覆盖,HMS Core会选择网络定位方式,定位速度相比于卫星定位慢。

如果只想获取一次位置,使用requestLocationUpdates, 还是使用getLastLocation比较好?

如果对位置的实时性要求较高,推荐使用requestLocationUpdates接口。如果只想收到一次位置信息,可以将LocationRequest中numUpdates参数设置为1。

火狐浏览器 导出围栏 / 下载模板 无文件生成,如何解决?

更改火狐浏览器设置,步骤如下:打开火狐浏览器,地址栏输入 "about:config",回车;进入配置界面,搜索 "security.csp.enable",将其设置为false;重启浏览器。

网络定位(Web API)接口(networklocation/v1/geoLocation)返回403或405,如何处理?

可以在api管理中,尝试关闭Location Kit的开关,然后重新打开,稍等之后进行重试

搜索
请输入您想要搜索的关键词