我允许用户从通讯簿中选择电话号码。我需要号码始终为国际格式,但有时人们会在联系人中存储没有国家代码的本地号码(例如555-555-5555,而不是+1-555-555-5555)。
有没有一种简单的方法可以找出本地号码所包含的国家代码,这样我就可以手动添加它?
这正是您所需要的https://code.google.com/p/libphonenumber/
String numberString = "044 668 18 00"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber numberProto = phoneUtil.parse(numberString, "BH"); // Where BH is the user's iso country code
String finalNumber = phoneUtil.format(numberProto, PhoneNumberFormat.E164);
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}