Dav*_*jak 5 android reverse-geocoding huawei-mobile-services huawei-location-kit
我正在尝试使用android.location.GeocoderHMS(华为移动服务)设备上的 对纬度/经度坐标进行地理编码,但结果我一直得到一个空列表。
val result = geoCoder.getFromLocation(latitude, longitude, MAX_RESULTS) // [] on HMS
Run Code Online (Sandbox Code Playgroud)
为了验证这实际上应该起作用,我检查了Geocoder.isPresent()哪个返回true.
查看 LogCat 输出,我可以看到以下几行,这表明我缺少某些 API 密钥或未正确配置某些内容...
XX/? I/HwGeoCoderProvider: [I/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:136] onGetFromLocation: start to GetFromLocation
XX/? D/HwGeoCoderProvider: [D/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:434] exceed max requesting limit
XX/? D/HwGeoCoderProvider: [D/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:162] exceed max requesting limit
XX/? I/HwGeoCoderProvider: [I/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:455] {callTime=..., service=hwLocation, rom_type=1001, transId={{some uuid}}, package=com.android.phone, apiName=GeoCode_getFromLocation, costTime=1, result=10400}
Run Code Online (Sandbox Code Playgroud)
我在 P40 Pro 上尝试了这个,它安装了最新的 HMS Core 版本 (5.0.0.304)。我之前收到过一些结果,所以它确实有效,但它显然达到了这个限制并停止工作。
如何android.location.Geocoder在 HMS 设备上对纬度/经度进行地理编码?需要什么配置/设置才能避免达到此限制?
我已经看到提到使用位置/站点工具包的解决方法,但如果可能,我更喜欢使用“vanilla”Android API。
您的问题是,在HMS设备上使用原生Android API时getFromLocation,系统提示API调用次数exceed max requesting limit。
可能的原因是您在网络状况不佳的情况下频繁发起请求。为了保证资源的合理使用,系统对资源的使用进行了限制。建议重启HMS Core(APK)或设备,在网络良好的情况下再发起请求,并保证短时间内发起的请求不超过10个。
感谢您的反馈意见。此问题将在Location Kit 5.0.2中得到纠正,该版本将于 2020 年 9 月 15 日发布。
更新:
新版本Location Kit 5.0.2.301来了,修改了LocationRequest类中setMaxWaitTime方法的描述,防止因设置不正确而导致首次定位回调缓慢。
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |