我正在构建一个用于阻止呼叫的Android应用。现在,当我要求用户联系他/她想要阻止时,该号码可能包含也可能不包含该国家/地区的代码,而当我接到该人的电话时,它肯定会有国家代码。例如, 在印度,人们可以用三种不同的方式存储它的数量: 1)90331xxxxx 2)090331xxxxx 3)+ 9190331xxxxx
现在,如果用户添加了以第一种方式存储的联系号码,那么我如何将其与传入号码进行比较,因为传入号码肯定会有国家/地区代码。 此外,全世界所有手机号码的长度也不同。那么,我应该如何比较这些数字。
答案 0 :(得分:-1)
您应该使用https://code.google.com/p/libphonenumber/。这有很多你需要的功能。
https://code.google.com/p/libphonenumber/#Quick_Examples说明如何使用此库来解析数字并获取特定国家/地区的号码,因此基本上您需要使用此库获取本地号码,然后将其用于比较。
String swissNumberStr = "044 668 18 00"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
boolean isValid = phoneUtil.isValidNumber(swissNumberProto); // returns true
// Produces "+41 44 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.INTERNATIONAL));
// Produces "044 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.NATIONAL));
// Produces "+41446681800"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.E164));