Niezawodna metoda na zdobycie kraju, w którym znajduje się użytkownik?

Zazwyczaj dostaję kraj z języka urządzenia. To działa, ale teraz muszę rozpoznać Brazylię. Większość urządzeń ma tylko język portugalski (pt_PT) i nie ma opcji portugalskiej (Brazylia).

Sprawdziłem ten wątek:Gdzie ja jestem? - Zdobądź kraj

Metody

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

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

Nadal są tylko językowe, nie pomagają.

Jest też sugestia z kartą SIM, ale nie jestem pewien, czy to zadziała niezawodnie (czy wszystkie karty SIM mają tę unikalną identyfikację?), To także trochę nie do końca to, czego potrzebuję, ponieważ użytkownik nie może tego zmienić (tak jest w przypadku ustawienia) i wyklucza użytkowników korzystających z urządzenia bez karty SIM (być może po prostu korzystają z sieci WLAN).

Istnieje również sugestia geolokalizacji, ale prawdopodobnie nie będzie ona działać w urządzeniach, które ją dezaktywowały. Czy się mylę?

Jeśli nic innego nie pomoże, w oknie aplikacji utworzę okno dialogowe lub ustawienie menu, aby użytkownik mógł je tam wybrać. Ale najpierw chciałbym potwierdzić, czy jest jakaś wiarygodna możliwość korzystania z urządzenia.

questionAnswers(5)

yourAnswerToTheQuestion