Как получить страну (или ее код ISO)?

Каков наилучший способ получить код страны? На данный момент я знаю два способа получить TelephonyManager, а другой – Locale, который является лучшим и уникальным способом найти код страны в android.

Solutions Collecting From Web of "Как получить страну (или ее код ISO)?"

Попробуй это,

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String countryCode = tm.getSimCountryIso(); 

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

Выбор очень прямолинейный: используйте Locale (чтобы выбрать язык, выбранный вами как предпочтительный ), или сделайте все возможное, чтобы вымолить их, показывая им информацию на языке, который они уже сказали, что они не хотят видеть вещи.

Чтобы использовать код страны:

 Locale.getDefault().getCountry(); 
  TelephonyManager tm = (TelephonyManager)getSystemService(getApplicationContext().TELEPHONY_SERVICE); String countryCode = tm.getNetworkCountryIso(); 

Это лучше, чем getSimCountryIso потому что getSimCountryIso зависит от оператора, чтобы записать страну iso на SIM-карте, а также поддерживает сети CDMA.

Я решил его по IP-адресу. Вы можете получить IP-адрес своего телефона. Если вы используете wifi, тогда это будет IP-адрес Wi-Fi-точки доступа или IP-адреса вашего сервера мобильной службы поддержки, поэтому с этого IP-адреса, который вы можете отправить на веб-службу, или что-то, чтобы отслеживать страну этого IP-адреса, есть некоторые источники (база данных), доступные в Интернете Который предоставляет стране ИС, приведен пример http://whatismyipaddress.com/ip-lookup .

Есть прекрасная статья Рето Майера: http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

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

Я думаю, что ip – лучший способ, потому что он даст вам страну, в которой телефон находится на мгновении,

Если вы это сделаете

  Locale.getDefault().getCountry();, 

Вы получили страну, в которой пользователь выбирает страну, чтобы вы могли выбрать Англию, и вы можете быть в Испании, и, возможно, вам нужно знать, где он находится на моменте

Пример: представьте, что ваше приложение может купить что-то ТОЛЬКО в Англии, пользователь из Испании, но он в отпуске в Англии, и он хочет купить ваш продукт … если вы используете

  Locale.getDefault().getCountry(); 

Этот пользователь не сможет купить ваш продукт, поэтому ip – лучший способ, я думаю

Вы можете использовать этот код для получения Locale.getDefault().getCountry() : Locale.getDefault().getCountry()

И это, чтобы получить ISO3: Locale.getDefault().getISO3Country()

Надеюсь это поможет