Ixx*_*Ixx 20 android locale setting
我通常从设备的语言中获取国家/地区.它有效,但现在我必须承认巴西.而且大多数设备只有葡萄牙语(pt_PT),没有葡萄牙语(巴西)选项.
我查了一下这个帖子:我在哪里? - 获得国家
方法
String locale = context.getResources().getConfiguration().locale.getCountry();
String locale = context.getResources().getConfiguration().locale.getDisplayCountry();
Run Code Online (Sandbox Code Playgroud)
仍然是语言,没有帮助.
还有sim卡的建议,但我不确定这是否可靠(所有的SIM卡都有这个独特的标识吗?),它也不是我需要的,因为用户无法改变它(如果是设置就是这种情况),它将排除使用没有SIM卡的设备的用户(可能他们只是使用WLAN).
还有地理位置建议,但这可能不适用于已停用它的设备.还是我错了?
如果没有别的帮助我会在我的应用程序中进行对话或菜单设置,以便用户可以在那里选择它.但我首先要确认该设备是否有可靠的可能性.
Eri*_*ric 33
您可以从电话网络中提取位置:
TelephonyManager.getNetworkCountryIso()
Run Code Online (Sandbox Code Playgroud)
或者从SIM卡:
TelephonyManager.getSimCountryIso()
Run Code Online (Sandbox Code Playgroud)
或者,如果您拥有用户的电话号码,则可以通过此数据将其与国家/地区匹配.
理想情况下,您可以使用所有这三个(按某种顺序,可能是SIM,Phone#,然后是网络),如果没有,则使用反向地理位置作为最后的手段.
试试这个:
TelephonyManager teleMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
if (teleMgr != null){
countryISOCode = teleMgr.getSimCountryIso();
}
Run Code Online (Sandbox Code Playgroud)
现在,countryISOCode根据此Wikipedia 条目,将包含以下类似于ISO 3166国家/地区代码的内容之一.
| 归档时间: |
|
| 查看次数: |
19824 次 |
| 最近记录: |