Программно найти устройство с поддержкой GPS или нет?

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

3 ответа

Решение

Да, это можно сделать.

Ты можешь позвонить LocationManager.getAllProviders() и проверьте, LocationManager.GPS_PROVIDER входит в список.

Просто для справки, я считаю, что все выпущенные телефоны Android поставляются с GPS. Это не то, что Android, кажется, беспокоит, например, упоминание GPS в качестве одного из атрибутов устройства, возвращаемых PackageManager.getSystemAvailableFeatures(),

Старый вопрос, но я нашел это проще в использовании

private boolean hasGpsSensor(){
        PackageManager packMan = getPackageManager();
        return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
}

Это будет false, если недоступно, и true, если активировано или нет, поэтому я использовал это после

private boolean isGpsEnabled(){
        LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}

С этими двумя, вы будете знать, если GPS доступен, активирован или деактивирован

Есть также метод LocationManager.isProviderEnabled(поставщик строк).

Другие вопросы по тегам