我有一个Android应用程序,它使用具有ACCESS_FINE_LOCATION权限的Android.Locations.LocationManager来获取高精度的位置。它适用于大多数设备,但由于某种原因,它不适用于很多 P20 用户?!注意!不是所有的华为P20,但在更大程度上比我们说的像素和三星用户大得多,我们根本没有问题。我们也在一些p30上遇到了问题。
我考虑过使用融合位置,但由于获得高度的准确性至关重要,因此想要使用 GPS 而不是 WiFi,融合位置似乎并不是真正的解决方案。
由于所有问题,我实际上购买了P20作为测试设备,但是当时当前的android版本(8.0(我们无法复制该问题。现在有了安卓9,我们可以!定位服务以+20m的精度关闭。这是在设备选项"提高位置精度">打开的情况下。如果我把它关掉,我们会得到4米!?但是,切换为关闭似乎并不能帮助所有用户......
有人知道华为(P20(设备需要考虑的任何特定技巧/实现吗?
您的问题是三星和华为手机上使用Android.Locations.LocatoinManager获得的设备位置不准确吗? 如果是,建议您将HMS核心定位套件集成到您的应用程序中以进行定位。得益于大量的众包数据,HMS核心定位套件可以在几秒钟内快速定位精确的设备位置。有关详细信息,请访问 https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/location-introduction。
在华为手机中,您必须使用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
https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201227666661190030&fid=0101187876626530001