如果您在下面没有找到需要的问题,请加入Stack Overflow社区参与讨论。
支持,目前融合定位和地理围栏特性支持非华为手机集成。
非华为手机集成定位服务时,需要保证HMS Core(APK)定位权限、应用定位权限都设置为始终允许状态,才可以正常定位。
可能未配置混淆文件导致HMS Core SDK混淆,返回错误码-5,请在编译APK前配置混淆脚本。
getLastLocation接口是从系统缓存中获取位置信息的,该接口不保证一定可以获取到位置信息。如果获取的位置信息为null,则可能是系统缓存已经被清除;此时先调用requestLocationUpdates接口获取位置信息以刷新缓存,再调用getLastLocation,即可以获取到位置信息。
通过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 8.0及以上全量机型。
因为当前下发的都是高精度的地理围栏,采用的是GNSS/Cell作为位置获取方式,因此推荐使用室外围栏,精度更高。
建议围栏最小半径在200米,小于200米不保证精度。
对于每个应用,最多可以下发100个围栏。
活动识别支持的EMUI版本:EMUI 9.1.1及以上。
活动识别支持的硬件平台:海思平台Kirin960及以上。
活动识别支持的手机内存:3G以上。
模拟机的支持情况不在如上范围内。
活动识别的IN_VEHICLE、ON_BICYCLE模式使用到了cell信息,测试功能时建议插SIM卡并打开5G/4G/3G/2G网络开关。
调用定位服务接口无法获取位置信息,且根据上述步骤难以定位原因。可以抓取运行日志并选择
提交问题,华为支持人员会及时处理。日志抓取办法如下:
adb logcat –v time > D:\hwlocation.log
同时请您尽可能记录出现问题的设备型号、EMUI版本号、HMS Core版本号、集成的SDK版本号以及复现问题的步骤,以便技术人员可以更快的为您进行技术定位。
minSdkVersion | 最低Android版本 | 最低EMUI版本 |
---|---|---|
19 | 4.4 | 5.0 |
定位过程中,由于第三方应用触发了HMS Core的的定位服务能力,为了保障第三方应用的定位功能正常运行,需要用户授权HMS Core位置权限,此权限的授予与第三方应用权限授予无关。如使用Android Q版本终端,需要授予HMS Core后台获取位置权限(授权弹框中的始终允许)。
setMockMode(boolean isMockMode)仅支持华为手机EMUI 5.0及以上版本。
通过LocationService、ActivityIdentification创建Client实例时,传入的Context参数不是Activity,调用功能接口时,不会弹出升级提示引导界面,只会返回错误码907135003,此时需要手动升级HMS Core。如果需要拉起升级引导界面,建议传入Activity替代Context,创建Client实例。
当前高精度定位只支持在P40系列上使用,并且只在中国大陆提供服务。
打开
。没有网络或者手机关闭网络定位时,不影响导航卫星定位功能的使用。
HMS Core是后台服务,需要得到用户“始终允许”的定位权限,才能够正常使用定位功能。
用户在室内时,大多数情况下,导航卫星不能够有效覆盖,HMS Core会选择网络定位方式,定位速度相比于卫星定位慢。
如果对位置的实时性要求较高,推荐使用requestLocationUpdates接口。如果只想收到一次位置信息,可以将LocationRequest中numUpdates参数设置为1。
更改火狐浏览器设置,步骤如下:打开火狐浏览器,地址栏输入 "about:config",回车;进入配置界面,搜索 "security.csp.enable",将其设置为false;重启浏览器。
可以在api管理中,尝试关闭Location Kit的开关,然后重新打开,稍等之后进行重试