无法通过 LocationManager.GPS_PROVIDER 获取 GPS 坐标

Posted

技术标签:

【中文标题】无法通过 LocationManager.GPS_PROVIDER 获取 GPS 坐标【英文标题】:Cannot Fetch GPS Coordinates Through LocationManager.GPS_PROVIDER 【发布时间】:2019-10-11 00:34:52 【问题描述】:

我无法使用LocationManager.GPS_PROVIDER 获取位置。但它正在使用LocationManager.NETWORK_PROVIDER

val locationManager=getSystemService(Context.LOCATION_SERVICE) as LocationManager

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,500, 100F,listener)//It's working if i use NETWORK_PROVIDER

val listener=object :LocationListener 
    override fun onLocationChanged(location: Location?) 
        latitude = location!!.latitude.toString()
        longitude = location!!.longitude.toString()

        Log.d("location", "$latitude $longitude")
    

    override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) 
    

    override fun onProviderEnabled(provider: String?) 
    

    override fun onProviderDisabled(provider: String?) 
    

【问题讨论】:

你可以参考这个仓库:github.com/yash786agg/GPS 到外面去。 GPS 在室内无法工作。 你在manifest中添加精细位置权限了吗? 是的,我在清单文件中添加了很好的位置。 如果针对现代 android 版本,添加到清单是不够的。需要“精确位置”的运行时权限。 【参考方案1】:

两种解决方案: 1. 也许您的移动设备中的 GPS 位置已关闭。因此,请尝试将其打开并检查位置。 2. 尝试实现由 Google Play Services API 提供的Fused location provider,因为它可以提高性能、节省电池寿命并提供更准确的位置

【讨论】:

Highfive 介绍FusedLocationProvider

以上是关于无法通过 LocationManager.GPS_PROVIDER 获取 GPS 坐标的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道LocationManager GPS检索的提供者?

LocationManager、GPS 和网络提供商.. 都被触发了吗?

如何获取 Android GPS 位置

Android:locationManager GPS_provider VS Network_provider

Android GPS定位速度不可靠

Android 模拟 GPS 提供程序