我正在开发一个应用程序,我想在其中使用融合位置提供商。但我有些疑问,还有几个问题。
你的意见是什么?提前谢谢。
发布于 2016-06-28 10:48:35
当GPS关闭时,我将优先级设置为高,这是否意味着GPS将自动打开,或者不打开?
不,它不会自动打开。但如果您使用SettingsApi,将提示一个对话框给用户,并给出的信息,全球定位系统是必须打开。如果用户接受它,gps将自动活动。检查SettingsApi
我如何知道融合提供商正在使用什么(它是GPS还是网络提供商)
如果您正确地将融合提供程序api与SettingsApi结合使用。它将为当前位置请求提供足够的设置。
融合提供商真的是android位置的最佳选择吗?有什么不好的地方吗?
在我看来,在融合提供商之前,你必须直接与供应商(Gps,网络)打交道,但融合只是问您,“您想要接收的位置有多准确?”
发布于 2016-06-28 10:20:56
正如在这里,https://developer.android.com/training/location/index.html非常清楚地指出,Google服务位置app比android.location (android.location)更受欢迎,它是向应用程序添加位置感知的一种方式。如果您目前正在使用Android框架位置API,则强烈鼓励您尽快切换到Google服务位置API。所以我希望你能得到答案。
发布于 2017-10-10 16:50:54
我做了一个Gps,Wifi和融合定位提供商测试应用程序,并测试了2天。它更好,因为它同时使用了它们,而且在大多数情况下,它是最精确的。此外,Gps数据是一种噪音很大的数据,引起抖动,解决这种低通滤波器或其他滤波器被使用。卡尔曼滤波是获得最精确结果的最成功的滤波方法之一。FusedLocationProvider采用与RotationVector相同的滤波器,它是一种融合了硬件和软件的传感器。RotationVector使用加速度计、陀螺仪(如果可用的话)和磁场传感器来获取和过滤位置和方位数据。
Location.getProvider用于LocationManager返回" Gps ",Wifi返回“网络”,FusedLocationProvider返回“融合”。
当GPS关闭时,我将优先级设置为高,这是否意味着GPS将自动打开,或者不打开?
除了“电池节约”以外的任何东西,如果可用的话,都会打开Gps。这个设置可以在我的Android 7.1.1手机上使用。在以前版本的Android上,用户端的位置设置是不同的。作为使用Gps启用的开发人员,您应该设置mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
PRIORITY_HIGH_ACCURACY -使用此设置请求尽可能精确的位置。使用此设置,定位服务更有可能使用GPS来确定位置。
设置优先级也决定了电池的使用水平。
我可以设置UpdateLocation与电熔供应商的高优先级按需,以节省电池至少一点?
是的,除了优先级之外,还可以设置位置请求的间隔。
mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
我如何知道融合提供商正在使用什么(它是GPS还是网络提供商)?
Wifi的位置不会为Location.hasSpeed()返回true,但是如果您在户外,Gps几乎总是返回true。另外,location.getExtras()有卫星标记,您可以检查卫星,这只对全球定位系统可用。速度可能是不正确的,如果你是步行或到目前为止,我还没有试过这个在汽车上,当速度低于5公里/小时,是不太准确的。我的意思是,如果你使用的是FLP和,最后的位置数据包含速度信息,这绝对是来自Gps。
有什么不好的地方吗?
在Android8.0及以上版本中,如果您不使用前台服务或在前台获取位置,则会出现l定位检索极限,而对于FLP和LocationManager,则不会暂停应用程序。
此外,FLP要求GooglePlayService在用户的设备上可用,并且应该在特定版本之上。10或11取决于你使用哪一种。如果你想在一个禁止Google服务的国家发布应用程序,比如中国,这可能会带来麻烦。
https://stackoverflow.com/questions/38072991
复制相似问题