2013-06-29 2 views
1

Я пытаюсь включить/выключить GPS в моем андроида код:Включение/выключение GPS и переключать значок в строке состояния - Android

final Intent broadcast = new Intent(); 
broadcast.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
broadcast.addCategory(Intent.CATEGORY_ALTERNATIVE); 
broadcast.setData(Uri.parse("3")); 
context.sendBroadcast(broadcast); 

Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE"); 
if(isOn) intent.putExtra("enabled", true); 
else intent.putExtra("disabled", false); 
context.sendBroadcast(intent); 

GPS-включен/выключен, но значок GPS в строка состояния не обновляется.

Кто-нибудь знает, как это исправить?

ответ

0

К счастью, эти скрипт-детские хаки не работали довольно давно. Вы можете привести пользователя на экран настроек, где они могут включать или отключать GPS, путем запуска an ACTION_LOCATION_SOURCE_SETTINGS activity.

+0

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

+0

Почему это взломать? Это то же самое, что включить/отключить Wi-Fi или Bluetooth. Это? – einav

+0

@ Ron.B.I: «Вызов этого скрипта kiddie hack вполне на стороне наступления» - что еще вы могли бы назвать взломом в приложении «Настройки» таким образом? «перенаправление пользователя в конфигурацию не является подходящим решением здесь» - и поэтому приложение не может предложить эту функцию. Жизнь продолжается. Если пользователи не могут включать/отключать отдельные разрешения (например, «ACCESS_FINE_LOCATION»), Google решил использовать Android 1.5+ на основе опасений по поводу конфиденциальности, чтобы блокировать приложения SDK от включения (или отключения) любого провайдера местоположений. Если вам это не нравится, создайте ROM-модуль, который это позволяет. – CommonsWare

Смежные вопросы