Я знаю, что вопрос о включении / выключении GPS программно на андроиде обсуждался много раз , и ответ всегда один и тот же:
Я понимаю, что, однако, я недавно купил Tasker с рынка и, помимо всего прочего, вы можете установить правила для автоматического включения GPS при входе в заранее определенные приложения и отключить его при выходе (см. Здесь Учебник о том, как это сделать, и он просто работает!), И это приложение не может быть подписано с ключом подписи прошивки, поскольку оно работает во многих версиях Android и разных устройствах, и вам даже не нужно укоренять.
Кто-нибудь знает или подсказывает, как Tasker достигает этого?
GPS можно переключить, используя ошибку в виджере диспетчера мощности. См. Эту тему xda для обсуждения.
Вот пример кода, который я использую
Используйте следующую команду, чтобы проверить, есть ли существующая версия виджета управления мощностью, которая позволит вам переключать gps.
Все эти ответы сейчас не разрешены. Вот правильный:
Для всех, кто все еще ищет ответ:
Вот как это делают OLA Cabs и другие подобные приложения.
Добавьте это в свой onCreate
Это внедренные методы:
Вот и документация для Android .
Это поможет другим парням, если они все еще борются:
Изменить : добавление комментария Irfan Raza для получения дополнительной помощи.
Этот код работает на телефонах ROOTED, если приложение перемещено в /system/aps , и они имеют следующие разрешения в манифесте :
Код
Начиная с версии 4.0 Android, вы не можете включить / отключить gps программно. Если вы попробуете код, предложенный в этом ответе , будет запущено исключение.
Вместо того, чтобы использовать намерение Settings.ACTION_LOCATION_SOURCE_SETTINGS, вы можете сразу отображать всплывающее окно в своем приложении, например, в Google Map & on Gps, при нажатии кнопки ok их нет необходимости перенаправлять настройки, просто вам нужно использовать мой код как
Образец здесь: Google Диск , Github , Sourceforge
Протестировано с 2.3.5 и 4.1.2 андроидами.
Ответ был разработан в другом вопросе, но он был закрыт, и я хотел бы, чтобы сообщество также опробовало его.
Посмотреть этот комментарий
Для этого решения потребуются разрешения WRITE_SETTINGS и WRITE_SECURE_SETTINGS .
Может быть, с трюками с отражением вокруг класса android.server.LocationManagerService .
Кроме того, существует метод (поскольку API 8) android.provider.Settings.Secure.setLocationProviderEnabled
С тех пор, как этот вопрос был опубликован, ситуация изменилась, теперь с новым API сервисов Google вы можете предложить пользователям включить GPS:
Вам нужно будет запросить разрешение ACCESS_FINE_LOCATION в вашем манифесте:
Также смотрите это видео:
Этот код работает на телефонах ROOTED:
Это лучшее решение, предоставляемое Google Developers . Просто вызовите этот метод в onResume onCreate после инициализации GoogleApiClient .
Примечание. Эта строка кода автоматически открывает диалоговое окно, если « Location не включено. Этот фрагмент строки также используется в Google Map