如何从android电话簿中获取国家代码

如何从android电话簿中获取国家代码,android,android-contacts,country-codes,phonebook,Android,Android Contacts,Country Codes,Phonebook,我正在开发android应用程序,我想从我的电话簿中检测国家代码,默认情况下,国家代码不会添加。例如: +971529090909, 00971529730000, 0529090909 在“+”和“00”状态下,我有国家代码,但在“0”状态下,我的国家代码不可用。我想检测所有联系人的国家代码,即使有人没有输入国家代码 如何使用任何库或任何代码片段检测国家/地区代码。您可以使用库(由谷歌维护)以任何格式解析任何数字,只需在解析时指定默认区域设置,这样就可以知道默认的国家/地区代码 你可以玩它的

我正在开发android应用程序,我想从我的电话簿中检测国家代码,默认情况下,国家代码不会添加。例如:

+971529090909,
00971529730000,
0529090909
“+”
“00”
状态下,我有国家代码,但在
“0”
状态下,我的国家代码不可用。我想检测所有联系人的国家代码,即使有人没有输入国家代码


如何使用任何库或任何代码片段检测国家/地区代码。

您可以使用库(由谷歌维护)以任何格式解析任何数字,只需在解析时指定默认区域设置,这样就可以知道默认的国家/地区代码

你可以玩它的在线版本


谢谢你的回答。我想问你,我不知道默认的语言环境。如果我有1000个联系人列表,有些有国家代码,有些没有。我想知道所有1000个联系人的国家代码。在线版本示例是询问country=field。我在回答中发布的代码显示了如何从sim卡获取默认的
地区
或默认的
国家
,您将在Android代码中使用该值您如何访问其他人的sim卡?这样做的目的是从手机中提取联系人,如果他们将联系人号码保存为083-123-1234,那又怎么样?你怎么知道他们在哪个国家?这个想法是,如果一个号码保存在联系人数据库中,没有国家代码,通常可以安全地假设手机的国家与用户的国家相同,否则该号码将无法拨打。当然,也有一些边缘情况,比如用户当前正在旅行,但可能性较小
TelephonyManager telephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String simCountryIso = telephony.getSimCountryIso();
if (simCountryIso != null) 
    return simCountryIso.toUpperCase(loc);
} else {
    Locale loc = Locale.getDefault();
    return telephony.getNetworkCountryIso().toUpperCase(loc);
}