我有一个Android应用程序,该应用程序使用具有ACCESS_FINE_LOCATION权限等的Android.Locations.LocationManager来获取高精度位置。它适用于大多数设备,但由于某些原因,它不适用于许多P20用户?注意!并非全部是华为P20,但比起Pixel Pixel和Samsung用户而言,我们的问题根本没有。我们也在几个p30上也遇到了这个问题。
我已经考虑过使用融合位置,但是由于获得高精度必须使用GPS而不是WiFi至关重要,融合位置似乎并不是真正的解决方案。
考虑到所有问题,我实际上购买了P20作为测试设备,但由于当时的当前android版本(8.0),我们无法复制该问题。现在有了Android 9,我们可以了!定位服务的精度为+ 20m。这是通过打开的设备选项“提高位置准确性”来实现的。如果我关闭它,我们得到4米!但是,如果将其关闭,似乎并不能帮助我们所有的用户...
有人知道华为(P20)设备需要考虑的任何特定的技巧/实现吗?
答案 0 :(得分:0)
您的问题是,在三星和华为手机上使用Android.Locations.LocatoinManager获取的设备位置不正确吗? 如果是,建议您将HMS Core Location Kit集成到您的应用中进行定位。由于大量的众包数据,HMS核心定位套件可在几秒钟内快速找到精确的设备位置。有关详细信息,请访问https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/location-introduction。
答案 1 :(得分:0)
在华为电话中,您必须使用HMS定位套件,在清单文件中,您必须添加给定的权限。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在Android Q中,如果您的应用在后台运行时需要连续定位设备的位置,则需要在清单文件中申请 ACCESS_BACKGROUND_LOCATION 权限。
将以上信息添加到清单文件后,您需要动态地在代码中申请权限。
要了解有关HMS位置的更多信息,可以访问链接。 https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/location-guidev4