Надежный способ узнать страну, в которой находится пользователь?

Я обычно получаю страну из языка устройства. Это работает, но теперь я должен признать Бразилию. И большинство устройств имеют только португальский (pt _PT )и не имеют опции португальский (Бразилия ).

Я проверил эту тему:Где я? -Получить страну

Методы

 String locale = context.getResources().getConfiguration().locale.getCountry();

 String locale = context.getResources().getConfiguration().locale.getDisplayCountry();

По-прежнему только язык -, не помогает.

Также есть предложение с сим-картой -, но я не уверен, что это будет работать надежно (все ли сим-карты имеют эту уникальную идентификацию? ), это также немного не совсем то, что мне нужно, потому что пользователь не может изменить это (, что в случае, если это была настройка ), и это исключит пользователей, использующих устройство без сима -карта (, возможно, они просто используют WLAN ).

Также есть предложение геолокации, но оно, вероятно, не будет работать на устройствах, на которых оно отключено. Или я ошибаюсь?

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

20
задан Community 23 May 2017 в 11:47
поделиться