Как получить GPS включен / отключен? - PullRequest
2 голосов
/ 01 марта 2011

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

Другими словами: я хочу обновить мой виджет , когда статус GPS изменился . Нужно ли мне писать BroadcastReceiver? Если да, то какое действие он получит?

Спасибо за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2012
0 голосов
/ 01 марта 2011

Ниже приведены методы, которые я недавно использовал для этого, НО я должен предупредить вас, что обнаружил, что (по крайней мере, на одном устройстве) возвращается значение true, когда GPS-оборудования вообще нет.Передайте значение, например LocationManager.GPS_PROVIDER.locationManager является экземпляром LocationManager.Надеюсь, вы найдете этот код полезным, но, хотя в моем текущем сценарии он работает нормально для меня, я ожидаю, что вам нужно его усовершенствовать.

// Checks whether the specified location provider is enabled on the device
public static boolean isLocationProviderEnabled(String provider)
{
    if ( locationManager.isProviderEnabled(provider) )
    {
        if (provider.toLowerCase().equals(LocationManager.GPS_PROVIDER))
        {
            return haveGPS();
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
}

// Checks whether the GPS hardware is present in the device
private static boolean haveGPS()
{
    PackageManager pmgr = SpondleApplication.getInstance().getPackageManager();
    boolean gotGPS = pmgr.hasSystemFeature("android.hardware.location.gps");
    return gotGPS;
}
...