Как Facebook находит решение для точности определения местоположения и заряда батареи?
Привет всем, у меня есть вопрос, на который я не нашел ответа. Кто-нибудь знает, как некоторые большие приложения (например, Facebook) решили проблемы между точностью определения местоположения и уровнем заряда батареи? Используют ли они высокопрецизионный провайдер локации или как?
1 ответ
Сплавленное расположение API обеспечивает больше, чем просто улучшение батареи / производительности. Он в основном решает от вашего имени, какие датчики использовать для определения местоположения в зависимости от необходимой вам точности и того, что доступно.
Что касается того, как добиться наилучшего баланса батареи / производительности:
Короткий ответ:
Проблема с батареей / производительностью решается за счет снижения максимально возможной точности без ущерба для удобства пользователя. Это делается путем переключения между различными режимами точности в зависимости от ситуации.
Примеры использования (просто чтобы дать представление о том, как об этом думать):
- Если вам нужно пометить изображение местоположением, получите координаты с высокой точностью. Если вы посчитаете, расход батареи GPS будет незначительным по сравнению с камерой и включенным экраном, и эта ситуация не будет длиться долго, поэтому использование высокой мощности не является проблемой, если это всего на несколько секунд.
- Если вам нужно проверить, когда пользователь попадает в определенное местоположение, вы будете проверять местоположение в сбалансированном режиме каждые 15 минут. Это не так точно и не совсем в режиме реального времени, но он не потребляет много батареи и не повлияет на работу пользователя, поскольку он будет определять общую область, где находится пользователь, когда он остается в одном и том же месте достаточно долго, поэтому что он заботится об информации.
- Если вам нужно знать, что пользователь находится в точном месте, сначала проверьте с помощью методов низкого расхода батареи, находится ли он в общей зоне, а затем проверьте еще раз с высокой точностью. Это значительно снизит расход батареи.
- Полностью отключайте определение местоположения в тех случаях, когда пользователю это, вероятно, не понадобится. Например, если это бизнес-приложение, оно, конечно, нам не нужно в выходные дни, поэтому просто не проверяйте местоположение в это время.