2013-07-23 3 views
-2

Возможно ли включить DeviceProviders (поставщик услуг GPS/сетевые провайдеры) на устройство программно, если оно выключено?Включение и выключение Gps на Android?

я могу включение GPS без проблем в андроиде 2.2 и 2.3, но в Android 4.0 или 4.1, когда я перехожу на GPS с этим code.gps значок появляется в уведомлениях, но я не могу получить текущее местоположение в моей программе

Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE"); 
    intent.putExtra("enabled", true); 
    sendBroadcast(intent); 

, что мне теперь делать? мне нужно это аварийный

ответ

1

GeoBits отправил правильную ссылку на объяснений, почему GPS должен (и может) быть включен programmaticaly.

Insteed просто откройте меню настроек устройства и дайте пользователю работу. Therefor вы должны использовать Намерение вроде этого:

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

Также можно запустить эту активность для результата, чтобы проверить, если пользователь включил GPS или нет в onActivityResult(). Это можно сделать следующим образом:

public boolean checkForGpsProvider() { 
     LocationManager locationManager = (LocationManager) 
       getSystemService(Context.LOCATION_SERVICE); 

     return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
    } 
+0

Я тестировал это в android 4.0.3 и 4.1.2. gps icon show в панели уведомлений, когда я включаю gps в код, но я не могу получить местоположение Мне нужно это для моей программы , кто ее тестирует, и это нормально работает? –

+0

Чтобы включить GPS и получить фактическое местоположение, разные истории. Было бы лучше, если бы вы открыли новый вопрос с вашей реальной проблемой –

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