Как я могу проверить наличие поддержки GPS в приложении, чтобы добавить функцию для тех, у кого включены службы определения местоположения?

Как я могу проверить наличие поддержки GPS в приложении, чтобы добавить функцию для тех, у кого включены службы определения местоположения?

Меня беспокоит то, что я знаю, что мне придется указать тег в манифесте, чтобы объявить, что приложение использует службы определения местоположения, но я все же хочу, чтобы приложение работало для тех, у кого их нет. Я просто хочу проверить и, если сервис доступен, воспользоваться им; в противном случае просто игнорируйте эту функцию.

Спасибо.


person Brian Lacy    schedule 24.05.2010    source источник


Ответы (1)


Вы можете проверить, включены ли какие-либо службы определения местоположения, посмотрев, включены ли какие-либо провайдеры определения местоположения. Я использую эту функцию в своем коде прямо сейчас:

public static boolean areProvidersEnabled(Context context) {
    ContentResolver cr = context.getContentResolver();
    String providersAllowed = Settings.Secure.getString(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    return providersAllowed != null && providersAllowed.length() > 0;
}

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

Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivity(intent);
person Dan Lew    schedule 24.05.2010