Как получить информацию о стране пользователя - PullRequest
1 голос
/ 10 мая 2010

В основном мне нужно определить страну пользователя при запуске приложения и включить или отключить функцию определения местоположения в моем приложении на основе его / ее страны. Мне нужно сделать это как можно быстрее в делегате приложения до загрузки RootViewController. Есть ли способ сделать это в iPhone SDK ??

1 Ответ

0 голосов
/ 10 мая 2010

Вам нужно название страны, в которой физически находится устройство, когда приложение запущено?

Или вы можете обойтись системным языком, который использует устройство, например en_US или fr_CA?

Если последнее, вы можете:

NSLocale *currentUsersLocale = [NSLocale currentLocale];  
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`

Тогда currentLocaleID будет "en_US" или "fr_CA" или аналогичным.

В противном случае вам потребуется использовать CoreLocation и некоторую форму обратного геокодера, чтобы преобразовать ваш широту / долготу в название страны.

MKReverseGeocoder может сделать это, но в условиях обслуживания говорится, что вам нужно делать это вместе с картой Google, которая может вам не подойти. Доступно только в OS 3.0 и выше, для получения дополнительной информации ищите документацию по MKReverseGeocoder .

Я сам нуждался в этом и закончил выполнять геокодирование в PHP на нашем сервере, используя IP-адрес устройства. Это элементарно, но дало нам достаточно деталей для наших нужд.

Проверьте этот веб-сервис: http://ws.geonames.org/findNearby?lat=47.3&lng=9
Который возвращает документ XML с названиями стран и близлежащих мест с парой широта / долгота.

Этот подход основан на том, что устройство имеет активное соединение для передачи данных.

...