¿Método confiable para obtener el país en el que se encuentra el usuario?

Normalmente obtengo el país desde el idioma del dispositivo. Funciona pero ahora tengo que reconocer a Brasil. Y la mayoría de los dispositivos solo tienen opción de portugués (pt_PT) y no de portugués (Brasil).

Revisé este hilo:¿Dónde estoy? - Obtener país

Los métodos

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

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

Todavía son solo de idioma, no ayuda.

También está la sugerencia con la tarjeta SIM, pero no estoy seguro de si esto funcionará de manera confiable (¿todas las tarjetas SIM tienen esta identificación única?), Tampoco es exactamente lo que necesito porque el usuario no puede cambiarla. (que es el caso si se tratara de una configuración), y excluirá a los usuarios que usen un dispositivo sin tarjeta SIM (quizás solo usen WLAN).

También hay una sugerencia de geolocalización, pero es probable que esto no funcione en dispositivos que la hayan desactivado. ¿O me equivoco?

Si nada más me ayuda, haría un diálogo o configuración de menú en mi aplicación para que el usuario pueda seleccionarla allí. Pero primero me gustaría confirmar si hay alguna posibilidad confiable con el dispositivo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta