Я разрабатываю это приложение для Android для своей компании (скажем, основной домен mycompany.com
), и мне нужно открыть веб-сайт компании с конкретным TLD для текущей страны, в которой находится устройство. Итак, коды стран на основе локали мне не подходят.
Я имею в виду, если вы в настоящее время находитесь за границей в Испании и открываете наше приложение, оно должно открываться mycompany.es
, если вы находитесь в Италии, оно должно открываться mycompany.it
и так далее. Мне не нужно это для каждой возможной страны, только для некоторых, запасной вариант будет mycompany.com
, если текущий код страны не соответствует ни одному из конкретных.
Мне действительно нужно это, прежде чем делать что-либо еще в моем приложении, это будет WebView
открытием веб-приложения компании. Другими словами, пока я не получу код страны, в которой находится устройство, приложение нельзя будет использовать. Это связано с тем, что некоторые страны (например, Испания) заставляют нас иметь только mycompany.es
, в то время как mycompany.com
полностью заблокированы на уровне интернет-провайдера.
Мне нужно, чтобы это работало на всех устройствах, телефонах/планшетах, во всех мобильных сетях или только через Wi-Fi. Такие вещи, как TelephonyManager.getNetworkCountryIso()
, вероятно, не помогут.
Мне нужно получить местоположение либо с помощью LocationManager
, либо с помощью Google Location Services API. С любым из них мне нужно получить последнее известное местоположение, но если по какой-то причине я его не получу, мне нужно запросить обновления местоположения и дождаться его. В службах Google также есть предостережение, когда у пользователя могут быть отключены службы определения местоположения, что является проблемой. Мне пришлось бы вернуться к LocationManager
, что не кажется таким надежным.
Все эти решения кажутся громоздкими только для того, чтобы получить текущий код страны устройства только для загрузки URL-адреса WebView в правильном домене. Но я думаю, что у меня нет другого выбора.
Если кто-то не знает лучшего решения этой проблемы... Мысли?