如何在Android中获取用户当前的区域设置?
我可以得到默认值,但这可能不是当前的正确吗?
基本上我想要当前语言环境中的双字母语言代码.不是默认的.没有Locale.current()
Android移动实际上并一清二楚,它在哪里 - 但有通过类似的国家代码检索国家的一种方式?
无需了解确切的GPS位置 - 这个国家就足够了
我首先考虑使用时区,但实际上我需要更多的信息,因为如果位置是纽约或利马它会有所不同.
问题的背景:我有一个使用温度值的应用程序,我想将默认单位设置为Celsius或Fahrenheit,具体取决于位置是美国还是外部
我想知道如何从我的Android应用程序中获取设备/用户区域代码我知道有一个名为TelephonyManager的lib但我找不到国家/地区代码功能
为了使自己清楚:我有一个活动,要求用户输入他的电话号码,我想从设备(从他的运营商?)获取区号?如果我打开我的应用程序在纽约我会得到+212作为代码和文本框输入我自己的号码
Android移动设备实际上确实知道它在哪里 - 但有没有办法通过国家代码或国家/地区名称来检索国家/地区?
无需知道确切的GPS位置 - 国家代码或名称就足够了,我正在使用以下代码:
String locale = context.getResources().getConfiguration().locale.getCountry(Locale.getDefault());
System.out.println("country = "+locale);
Run Code Online (Sandbox Code Playgroud)
但它给了我"美国"代码,
但我的设备保存在印度; 有没有办法找到设备当前国家代码而不使用GPS或网络提供商.因为我正在使用平板电脑 提前致谢.
我通常从设备的语言中获取国家/地区.它有效,但现在我必须承认巴西.而且大多数设备只有葡萄牙语(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).
还有地理位置建议,但这可能不适用于已停用它的设备.还是我错了?
如果没有别的帮助我会在我的应用程序中进行对话或菜单设置,以便用户可以在那里选择它.但我首先要确认该设备是否有可靠的可能性.