Как я могу узнать, какое приложение использует мой GPS в фоновом режиме? [дубликат]

Возможный дубликат:
как проверить, какое приложение использует GPS на Galaxy Nexus?

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

Есть ли способ сделать это? Я полагаю, может быть, приложение, которое обнаруживает это или что-то системное?

Вы проверили вывод adb logcatalady?
Вы используете пользовательское ПЗУ, такое как AOKP/CyanogenMod/и т. д. ? Есть шляпа автопатчера PDroid, которая добавляет контроль над этим и другими вещами, связанными с конфиденциальностью.

Ответы (1)

Во-первых, под "чистым" что именно вы подразумеваете? Оверлеи пользовательского интерфейса многих производителей предоставляют способы удаления запущенных приложений из списков быстрого доступа, например, тот, который вы получаете при длительном нажатии на клавишу «Домой», но это обычно не закрывает приложение. Android по умолчанию поддерживает работу приложений в «фоновом» режиме после того, как вы откажетесь от них, потому что они быстрее переключаются, если они уже находятся в оперативной памяти, чем если вы запускаете их «холодно».

Таким образом, если вы не «принудительно закрываете» приложения с помощью представления «Настройки» или приложения «убийцы задач», любое приложение, которое вы запускали, но «очистили», по-прежнему работает в «фоновом режиме». Большинство приложений очень мало работают в фоновом режиме, чтобы экономить процессор и, следовательно, использование батареи, но некоторые поддерживают такие вещи, как доступ к GPS. Любое социальное приложение, которое позволяет вам «отмечаться» где-либо, например, Facebook, Foursquare, приложения «след» и т. д., скорее всего, сделает это, чтобы вы могли быстро отметить свое текущее местоположение, не дожидаясь, пока GPS повторно захватит спутники и получит ваши данные. место нахождения.

Если вы принудительно закрываете или убиваете приложения, которые, по вашему мнению, используют GPS, и вы все еще видите значок GPS, это может быть одна из двух вещей; во-первых, принудительное закрытие не является «чистым» способом закрытия приложений, и многие не ожидают принудительного закрытия, поэтому, если вы принудительно закроете приложение, которое использовало GPS, оно может не очистить такие вещи, как его подключения к функциям телефона, таким как GPS.

Во-вторых, в Android встроены некоторые службы, такие как служба E911, которые используют GPS, если он доступен, и их нельзя отключить. Таким образом, если вы запускаете GPS для чего-то другого, одна из этих служб может попросить ОС сохранить полученные сигналы от спутников GPS, чтобы они могли сохранять ваше местоположение на случай , если вам придется звонить в 911, пока вы вручную полностью не отключите GPS. (в это время службы возвращаются к менее точным методам определения местоположения, таким как триангуляция от близлежащих вышек сотовой связи или известных точек доступа Wi-Fi).

РЕДАКТИРОВАТЬ: Чтобы ответить на фактически заданный вопрос (новая концепция, я знаю), я не могу найти никаких приложений, которые будут показывать использование GPS, которые доступны в Google Play и не требуют рутированного телефона (и / или пользовательского ПЗУ, например, CyanogenMod и т. д. ). Тот, который я нашел, Spare Parts Plus PRO , предназначен для того, чтобы делать это окольным путем, показывая использование батареи установленными приложениями с разрешением на использование GPS, но кроме одного отзыва пользователя здесь (более года назад) я могу ' Я больше не нахожу никаких доказательств того, что он действительно это делает (бесплатная версия этого не делает, и ни в одной документации конкретно не говорится, что это будет), и я не собираюсь тратить деньги, чтобы узнать, просто чтобы дать вам ответ здесь. Извини. Если вы хотите попробовать, это всего 1,75 доллара; дайте знать остальным.

Единственное, что я могу посоветовать, это поискать диспетчер приложений, который будет перечислять запущенные программы в зависимости от требуемых разрешений. Есть несколько приложений, которые перечислены с разрешения; aSpotCat, PermissionDog, App Permission Watcher и т. д., однако я не уверен, какие из них также позволят фильтровать по текущему рабочему статусу (PermissionDog выводит уведомление при запуске приложения, показывая, что оно может делать).

Если вы найдете его, использование простое; если оно работает и ему нужен GPS, есть подозрение, что это приложение действительно использует GPS прямо сейчас.

Наконец, с технической точки зрения, ОС Android фактически «использует» GPS телефона. Большинство приложений, особенно те, которые не требуют рутирования, не могут напрямую управлять какой-либо функцией вашего телефона; вместо этого они просят ОС Android получить или установить информацию об этих функциях, используя «менеджеров служб», которые Android предоставляет в своем API. Приложение, которому требуется ваше местоположение, просто запросит у службы Android LocationManager ваше текущее местоположение, опционально запрашивая «грубую» или «точную» детализацию, и Android затем будет использовать любые службы определения местоположения, которые вы сказали ему, что он может использовать (GPS, вышки сотовой связи). , местоположение точки доступа Wi-Fi), возвращая местоположение и используемый метод (или сообщая приложению, что запрошенный уровень детализации не может быть использован, поскольку вы его отключили). Android, насколько я знаю, не отслеживает, какие приложения делали последние запросы через API для своих служб определения местоположения (гораздо меньше, какие из этих запросов требовали от службы затрат значительных ресурсов, чтобы выяснить это); он знает только, какие приложения имеют на это разрешение, и пока хотя бы одно из них запущено и сделало запрос, Android поддерживает GPS активным.

В результате лучшее, что вы можете сделать, — это перепроверить работающие приложения с приложениями, которые могут использовать GPS, чтобы выяснить, какие приложения могут использовать GPS прямо сейчас. Если есть только один запуск, который имеет необходимое разрешение, его довольно легко сузить. Если есть дюжина приложений или служб с таким разрешением, которые в настоящее время «работают» (резидентно в оперативной памяти), это немного сложнее (особенно потому, что, как я уже сказал, некоторые из них могут быть базовыми службами телефона, которые могут привести к его сбою, если вы пытаетесь принудительно закрыть их).

Хорошая информация, но как это ответить на вопрос: как я могу узнать, какое приложение использует мой GPS в фоновом режиме?
О да, я просто имел в виду, что использовал специальную клавишу «запущенные приложения» в ICS +, чтобы закрыть их. Я понимаю, что это оставляет вещи работающими в фоновом режиме.
Что сказал @Izzy. Я могу придумать множество причин , по которым приложения могут это делать, но я хотел знать, какие именно. Кроме того, это начало происходить в последние несколько недель, поэтому я очень сомневаюсь, что это связано со встроенной службой. Даже если это так, я хотел бы знать наверняка.
К сожалению, поиск в Google Play вариантов «GPS Monitor» или «GPS Usage Tracker» показал только приложения, которые используют GPS для отслеживания или мониторинга вещей (вас, ваших грузовиков / водителей, ваших детей и т. д.), а не для отслеживания самого использования GPS.
Спасибо, что изучили это. Не похоже, что есть очевидный ответ, но это полезное понимание. В последнее время я не видел там иконку, поэтому не знаю, что сейчас происходит.