Проверьте, присутствует ли система GPS на устройстве Android, уровни API 3 или 4 - PullRequest
1 голос
/ 03 ноября 2011

Мне нужно проверить, присутствует ли система GPS на устройстве Android.

Я видел ответ на следующий вопрос, Как проверить наличие датчика GPS? , но нужно сделать это с уровнем API 3 или 4.

Ответ, присутствующий в ссылке, будет работать с минимумом уровня API 5 для hasSystemFeature () и 8 для константы PackageManager.FEATURE_LOCATION_GPS.

Заранее спасибо.

Обновление:

Использовал следующий код, реализующий решение из CommonsWare.

boolean gpsOnBoard;

LocationManager locMan = (LocationManager) mCtx.getSystemService(Context.LOCATION_SERVICE);
List<String> locProvs = locMan.getProviders(true);

// check if we have a valid list of providers
if (locProvs != null)
{
gpsOnBoard = false;

// check all providers 
    for (String locProvName:locProvs)
    {
    if (locProvName.equals(LocationManager.GPS_PROVIDER))
        {
    // we have GPS hw onboard
        gpsOnBoard = true;

    }
 }

1 Ответ

0 голосов
/ 03 ноября 2011

Позвоните getProviders() на LocationManager и посмотрите, какие есть провайдеры.

В идеале, вы не должны жестко кодировать поддержку GPS в своем приложении, поскольку у пользователей может быть отключен этот поставщик, даже если оборудование существует. Попробуйте использовать Criteria и другой вариант getProviders(), чтобы Android мог помочь вам найти подходящего и доступного поставщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...