Выключить GPS программно - PullRequest
       7

Выключить GPS программно

5 голосов
/ 03 августа 2011

Что у меня есть: В настоящее время мое приложение предоставляет местоположение через GPS.

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

Ответы [ 4 ]

10 голосов
/ 03 августа 2011

Глядя на вышеупомянутую ветку комментариев, кажется возможным программно отключить GPS (но видя только 12 голосов)

Но если вы отключите GPS из своего приложения программно, что если другие приложения используют GPSСлужба?

Решение будет похоже на

Открыть Settings андроида, а затем попросить пользователя отключить GPS, когда онВыход из приложения ...

Для этого вы можете сделать так:

Intent i = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);

ИЛИ

Вы можете попробовать как

locationManager.removeUpdates(myLocationListener); 
locationManager = null;

Это отключение GPS для этого приложения, но оно все еще доступно для использования другими приложениями.

2 голосов
/ 17 декабря 2012

Если вы хотите включить GPS программно, скопируйте и вставьте этот код в ваш проект, он работает нормально.

      final Intent i = new Intent();
      i.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider"); 
      i.addCategory(Intent.CATEGORY_ALTERNATIVE);
      i.setData(Uri.parse("3")); 
       sendBroadcast(i); //if you are in broad cast receiver activity then use context.sendBroadcast(i)
2 голосов
/ 03 августа 2011

Несмотря на то, что опубликованная ссылка Rasel содержит некоторый код, который может работать, вы должны помнить, что код использует уязвимость безопасности, которая уже исправлена ​​(http://code.google.com/p/android/issues/detail?id=7890) и поэтому не должна работать в ближайшем будущембольше.

2 голосов
/ 03 августа 2011

Этот код может изменить ваш GPS. Но это не задокументировано

 final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            sendBroadcast(poke);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...