以电池效率高的方式从Android GPS轮询卫星数据

以电池效率高的方式从Android GPS轮询卫星数据,android,gps,location,battery,satellite,Android,Gps,Location,Battery,Satellite,这是一个与许多其他问题(即)非常接近的问题。然而,我需要的是完全不同的 因此,基本上,我在寻找一种使用LocationManager类定期轮询Android设备的方法。具体来说,我想要卫星信息(而不是位置本身)。也就是说,我只想知道卫星的数量,信噪比等等。我希望能以最节省电池的方式做到这一点 一种方法是使用onGpsStatusChanged回调获取卫星信息,然后使用类似location\u manager.getGpsStatus(null.getSatellites()的方法获取卫星。事实上

这是一个与许多其他问题(即)非常接近的问题。然而,我需要的是完全不同的

因此,基本上,我在寻找一种使用
LocationManager
类定期轮询Android设备的方法。具体来说,我想要卫星信息(而不是位置本身)。也就是说,我只想知道卫星的数量,信噪比等等。我希望能以最节省电池的方式做到这一点

一种方法是使用
onGpsStatusChanged
回调获取卫星信息,然后使用类似
location\u manager.getGpsStatus(null.getSatellites()
的方法获取卫星。事实上,我就是这样做的

关于这一点,我现在有几个问题,我在Android文档或我见过的任何在线论坛上都找不到

  • 是否将调用
    onGpsStatusChanged
    ,而不将
    LocationListener
    添加到我的
    LocationManager
    ?我是否可以在不注册LocationListener的情况下查询GPS接收器向我发送卫星信息?也就是说,除了以下情况外,是否有直接的方法:

            location_manager.addGpsStatusListener(gps_status_listener_);
            location_manager.requestLocationUpdates(location_manager.getProvider(LocationManager.GPS_PROVIDER).getName(), 3000, 2f, location_listener_);
    
    因为对我来说,
    LocationListener
    是无用的

  • 定期连接
    GPSStatusListener
    是否更节省电池电量,获取卫星信息并删除侦听器,或者只连接一次并保持轮询,直到我不再需要它为止。我意识到连续轮询是电池效率低下的,而且大多数问题都涉及使用
    requestLocationUpdates
    轮询
    LocationManager
    ,并设置minTime和MindDistance等,以最大限度地减少电池消耗量。然而,我只需要卫星信息,所以也许有一种方法可以在不消耗电池的情况下连续投票

  • 这就引出了我的下一个问题:
    GPSStatusListener
    平均多长时间获得卫星信息。我意识到获得一个位置需要一段时间,这取决于提供商、LastKnownLocation和yada yada。但是卫星信息呢?快一点吗

  • 如果有人能在这里帮助我,我将不胜感激!提前谢谢大家