我通常从设备的语言中获取国家/地区。它有效,但现在我必须承认巴西。而且大部分设备只有葡萄牙语(pt_PT),没有葡萄牙语(巴西)选项。
我检查了这个帖子:Where am I? - Get country
方法
String locale = context.getResources().getConfiguration().locale.getCountry();
String locale = context.getResources().getConfiguration().locale.getDisplayCountry();
仍然只有语言,没有帮助。
还有关于 sim 卡的建议,但我不确定这是否能可靠地工作(所有 sim 卡都有这个唯一标识吗?),它也有点不完全是我需要的,因为用户可以' t 改变它(如果它是一个设置就是这种情况),它将排除使用没有 sim 卡的设备的用户(也许他们只使用 WLAN)。
还有地理定位建议,但这可能不适用于已停用它的设备。还是我错了?
如果没有其他帮助,我会在我的应用程序中进行对话框或菜单设置,以便用户可以在那里选择它。但我想先确认一下该设备是否有任何可靠的可能性。
最佳答案
您可以拉取位置from the phone network :
TelephonyManager.getNetworkCountryIso()
TelephonyManager.getSimCountryIso()
或者,如果您 have the user's phone number ,您或许可以通过 this data 将其与国家/地区匹配.
理想情况下,您可以使用所有这三个(按某种顺序,可能是 SIM、电话号码,然后是网络),如果都不起作用,则将反向地理定位作为最后的手段。
关于android - 获取用户所在国家/地区的可靠方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872483/