我正在编写一个读取手机中所有联系人的应用程序,如果该号码与特定的正则表达式匹配,我的应用程序将编辑为更合适的新应用程序。
我写了我的电话上跟我交往完美运行(银河S2和我把很多测试号在我的联系人),但抛出模式异常的一个星系S3(用不同的联系人列表中的一个,但正如我所说的,我把代码在我的sim中有很多测试联系人,我想我已经涵盖了所有可能的测试用例)
否则,如果解析顺利进行,一旦应用程序读取与照片的联系人,就会在galaxy s3上结束更新号码,但程序会继续工作,直到所有联系人都被重新加入(在查询中我只询问显示号码,号码和身份证,没有照片,没有电子邮件等)
任何提示?
这是解析所涉及的代码:
public NumberParser(String idSim)
{
AssociationManaging am = new AssociationManaging();
prefix = am.getAssociatedPrefix(idSim).trim();
internazionalePrivataConPrefissoRegEx = prefix+"0039[0-9]+";
nazionalePrivataRegEx = prefix+"[0-9]+";
internazionaleAziendale1RegEx = "\\+39[0-9]+";
internazionaleAziendale2RegEx = "0039[0-9]+";
internazionalePrivataPausaRegEx = prefix+"0039[0-9]+,[0-9]";
nazionalePrivataPausaRegEx = prefix+"[0-9]+,[0-9]";
nazionaleAziendaleRegEx = "[0-9]+";
}
/* examples of possible numbers
String nazionaleAziendale ="333123123";
String internazionaleAziendale1 = "+39333123123";
String internazionaleAziendale2 = "0039333123123";
String nazionalePrivata = prefix+"333123123";
String nazionalePrivataPausa = prefix + "333123123,3";
String internazionalePrivataConPrefisso = prefix+"0039333123123";
String internazionalePrivataConPausa = prefix + "0039333123123,3";
*/
public String getPrefixMatch(String number)
{
String type = "unknown";
if(check(internazionalePrivataConPrefissoRegEx, number))
return prefix+"0039";
else if(check(nazionalePrivataRegEx, number))
return prefix;
else if(check(internazionaleAziendale1RegEx, number))
return "+39";
else if(check(internazionaleAziendale2RegEx, number))
return "0039";
else if(check(internazionalePrivataPausaRegEx, number))
return prefix + "0039_" + number.substring(number.length() -1, number.length());
else if(check(nazionalePrivataPausaRegEx, number))
return prefix + "_" +number.substring(number.length() -1, number.length());
else if(check(nazionaleAziendaleRegEx, number))
return "";
return type;
}
public static boolean check(String regex, String input){
if (Pattern.matches(regex, input))
return true;
else
return false;
}
编辑:我发送我的.apk给朋友,他试过(老lg):没有例外,但是代码没有更新联系人...我不能不知道为什么在我的手机上一切正常,在其他设备上不 !