【问题标题】:Miminum play services version required for FusedLocation APIFused Location API 所需的最低播放服务版本
【发布时间】:2019-05-16 13:40:32
【问题描述】:
使用FusedLocationApi设备上安装的播放服务最低版本是多少?
同样LocationManager不需要播放服务,使用LocationManager是否有最低要求。
我想使用涵盖尽可能多设备的任何 API 来获取用户的位置,这就是为什么我担心它们的最低要求。
谢谢。
【问题讨论】:
标签:
android
locationmanager
fusedlocationproviderapi
android-fusedlocation
【解决方案1】:
你真的不需要FusedLocationApi。您可以改用普通的 Android API android.location.LocationManager,我不确定它是否能 100% 工作,但您可以尝试进行一些自定义操作:
//start updates
HandlerThread thread = new HandlerThread("location updates thread");
thread.start();
LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Looper looper = handlerThread.getLooper();
String provider = LocationManager.GPS_PROVIDER;//either gps, network, passive, fused
mgr.requestLocationUpdates(provider,1,1,callback,looper);
...
//stop updates
mgr.removeUpdates(callback);
thread.quit();
还要确保在开始位置更新之前请求位置权限
【解决方案2】:
我想使用涵盖尽可能多设备的任何 API 来获取用户的位置,这就是为什么我关心他们的最低要求。
您可以开始尝试通过以下方式接收位置信息
FusedLocationProviderClient 如果设备支持 google play 服务。该 api 具有返回自身可用性的方法。
在不支持的情况下,LocationManager 可以在所有版本上安全使用。您可以请求网络或 gps 提供商的位置,只要设备能够使用它们。