Это очень близкий вопрос ко многим другим вопросам (например, Регулярный GPS-опрос Android в работе, максимально увеличивающий срок службы батареи). Однако мне нужно совсем другое.
Итак, в основном я ищу способ регулярно опрашивать устройства Android с помощью класса LocationManager
. В частности, мне нужна информация о СПУТНИКЕ (НЕ о самом местоположении). т.е. Мне просто нужно количество спутников, соотношение сигнал/шум и так далее. Я ищу, чтобы сделать это максимально эффективным способом батареи.
Один из способов сделать это — получить информацию о спутниках с помощью обратного вызова onGpsStatusChanged
, а затем получить спутники с помощью чего-то вроде location_manager.getGpsStatus(null).getSatellites()
. Это действительно то, как я это делаю.
В связи с этим у меня есть несколько вопросов, которые я не могу найти нигде в документации по Android или на любом онлайн-форуме, который я видел!
Будет ли вызываться
onGpsStatusChanged
без добавленияLocationListener
к моемуLocationManager
? Могу ли я просто запросить GPS-приемник, чтобы отправить мне информацию о спутнике, не регистрируя также LocationListener? т.е. Есть ли прямой способ сделать это, кроме чего-то вроде:location_manager.addGpsStatusListener(gps_status_listener_); location_manager.requestLocationUpdates(location_manager.getProvider(LocationManager.GPS_PROVIDER).getName(), 3000, 2f, location_listener_);
Потому что для меня
LocationListener
бесполезен.Будет ли более экономично периодически подключать
GPSStatusListener
, получать информацию о спутнике и удалять прослушиватель ИЛИ просто подключить его один раз и продолжать опрос до определенного периода, когда он мне больше не нужен. Я понимаю, что непрерывный опрос неэффективен для батареи, и большинство вопросов связаны с опросомLocationManager
сrequestLocationUpdates
и установкой minTime и minDistance и т. д., чтобы минимизировать количество потребляемой батареи. Однако мне нужна только информация о спутниках, так что, может быть, есть способ непрерывного опроса без этого потребления батареи?Это приводит прямо к моему следующему вопросу: как быстро
GPSStatusListener
в среднем получает спутниковую информацию? Я понимаю, что получение LOCATION занимает некоторое время и зависит от Providers и LastKnownLocation и yada yada. А как же спутниковая информация? Это быстрее?
Если кто-то может помочь мне здесь, я был бы очень обязан! Заранее всем спасибо!