Android Best Location Listener Реализация - PullRequest
2 голосов
/ 31 октября 2011

Я работал над приложением на основе местоположения, и все в порядке, за исключением реализации местоположения, которая является основной точкой.

Я знаю, что местоположение очень дорогое, но я не смог справиться с этим, учитывая расход батареи.

Вот мой текущий алгоритм:

Шаг 1: Создайте диспетчер аварий с интервалом времени 1 минута.

Шаг 2: При срабатывании тревоги запустите прослушиватель местоположения

if(settings.getBoolean("use_gps", false))
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
    manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,listener);
    manager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 0, 0,listener);

Шаг 3: Подождите не более 15 секунд для местоположения

Шаг 4: Когда получено местоположение, остановите прослушиватель местоположения.

Один изпроблема связана с этим: в 0 секунд, при точности определения местоположения 0 метров, использование ЦП значительно возрастает - 45% ЦП при срабатывании тревоги, с 0-15 секундами тревоги.

Но когда я смотрю на использование батареи моего приложения, увеличение использования батареи через 1-2 часа не соответствует ожидаемому: использование батареи составляет всего ~ 4% - 5%.

Вторая проблема возникает, когда пользователь хочет узнать свое местоположение по GPS.Поскольку получение местоположения по GPS занимает так много времени, по сравнению с получением местоположения от сетевого провайдера, я не мог получить местоположение по GPS.

Я реализовал этот алгоритм после реализации множества различных методов.

Я ищу рекомендации от кого-то, кто успешно осуществил периодический поиск местоположения через GPS с низкой загрузкой ЦП.

Ответы [ 2 ]

2 голосов
/ 31 октября 2011

Используйте приемник и сервис вместе.Для этого вы можете найти полный образец в по этой ссылке .В этом есть слушатель.Слушатель может быть использован в вашей деятельности, чтобы заметить, что новое местоположение готово для вас.Также есть сервис с AlarmManager в нем.

1 голос
/ 03 апреля 2013

Ознакомьтесь с библиотекой локаций Little Fluffy, она выполняет всю «тяжелую» работу по локации и следует советам профессионалов по локации Google -> https://code.google.com/p/little-fluffy-location-library/

...