Что происходит, если устройство Android не имеет GPS в качестве поставщика местоположения - PullRequest
0 голосов
/ 11 ноября 2011

С учетом этого кода

if (!locator.isProviderEnabled(LocationManager.GPS_PROVIDER)) {


        //consider forcing user to turn on gps here
    } else {

        provider = LocationManager.GPS_PROVIDER;
    }

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

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Если поставщик GPS недоступен (или не включен), попробуйте все, что вы можете получить:

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_HIGH);
criteria.setPowerRequirement(Criteria.POWER_HIGH);

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
String provider = lm.getBestProvider(criteria, true);

Это предполагает, что вы предпочитаете грубую позицию, а не позицию вообще.

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

Вам нужен только GPS, если вы хотите точное местоположение. Если устройство просто не имеет GPS, то вы можете оценить с меньшей точностью через NETWORK_PROVIDER. Это обычно подходит, если вам просто нужно общее местоположение пользователя (западная сторона города, возле мемориала и т. Д.). Если вам абсолютно необходимо, чтобы ваше приложение работало с определенной точностью, то вы, пользователь без GPS, просто неудачны.

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

...