Método confiável para obter o país que o usuário está?

Eu costumo pegar o país da linguagem do dispositivo. Funciona, mas agora tenho que reconhecer o Brasil. E a maioria dos dispositivos tem apenas a opção portuguesa (pt_PT) e não portuguesa (Brasil).

Eu verifiquei este segmento:Onde estou? - Obter país

Os métodos

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

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

Ainda são apenas de idioma, não ajuda.

Há também a sugestão com o cartão SIM, mas não tenho certeza se isso funcionará de forma confiável (todos os cartões SIM têm essa identificação exclusiva?), Também não é exatamente o que eu preciso, porque o usuário não pode alterá-lo (que é o caso se fosse uma configuração), e excluirá usuários usando um dispositivo sem cartão SIM (talvez eles usem apenas WLAN).

Há também uma sugestão de geolocalização, mas isso provavelmente não funcionará em dispositivos que a desativaram. Ou eu estou errado?

Se nada mais ajudar, eu faria uma configuração de diálogo ou menu no meu aplicativo para que o usuário possa selecioná-lo lá. Mas primeiro gostaria de confirmar se há alguma possibilidade confiável com o dispositivo.

questionAnswers(5)

yourAnswerToTheQuestion