Включить GPS, как GPS вкл/выкл

Я знаю, что вы не можете включить GPS в своем приложении, не перейдя на системные настройки. Но я загрузил GPS вкл/выкл виджета, и этот виджет выполняет эту работу. Я декомпилировал apk, чтобы найти, как программист выполнил эту работу без успеха, файлы dex не отображают код, а функции и информацию. Идея о том, как он это сделал?

Ответ 1

Используйте следующую функцию

buildAlertMessageNoGps() и launchGPSOptions()

для достижения вашей цели.

см Ссылка

Ответ 2

Вы можете найти исходный код, если он разместил его. Иногда люди размещают свой код на GIT, и вы можете просматривать весь проект. В частности, если вы не знакомы с декомпиляцией кода с помощью dalvik.. то это сложный маршрут.

Если вы хотите переключить GPS, просто активируйте свой виджет активностью, которая переключает GPS, передавая состояние виджета активности с помощью намерения. Затем выполните свою активность, а затем закройте.

Тем не менее; Я бы предпочел сделать это через сервис, который является активностью без пользовательского интерфейса. Эта услуга может быть запущена с вашим приложением и при получении определенной широковещательной передачи, затем выполните некоторую функцию, которая будет запускаться через ваш виджет.

В частности, вам нужно будет изучить один тип прослушивания. Существует фильтр намерений на основе XML, который НЕПРАВИЛЬНО отправит эти конкретные трансляции вашему приложению, которые могут быть обработаны соответственно.

Например, скажем, ваш виджет представляет собой кнопку переключения с заголовком. Когда вы переключаете кнопку, у вас есть код виджета, который отправляет трансляцию с намерением вашей службы с состоянием кнопки переключения. Затем в сервисе вы будете управлять состоянием GPS или любого другого компонента на телефоне.