2015-11-06 65 views
0

我已经构建了一个应用程序,通过它循环并收集用户手机联系人,我的目标是然后使用这些数字并查询我的分析数据库并查找包含用户联系人(这将检查是否有任何用户联系人是我的应用程序的用户,用户电话号码将在注册时保存到我的解析数据库中)。我收到的问题是,当收集用户联系人号码,他们以不同的格式返回,一些+447966000000,一些07966000000,一些07 966000 000000等

我的问题是,什么是最好的方式来格式化我的数字保存到数据库并从用户联系人中检索它们,以便所有数字都以相同的格式保存和检索,以便当我对它们进行有条件检查时,它们将很容易进行比较?

我已经下载了手机号码实用程序库,但我不确定库中的内容可以用来做这样的事情。到目前为止Android - 手机号码格式化和删除国家/地区代码



代码:

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); 
     while (phones.moveToNext()) 
     { 
      String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

      Toast.makeText(getApplicationContext(),name + " " + phoneNumber, Toast.LENGTH_LONG).show(); 
     } 
     phones.close(); 
+0

检查:[http://stackoverflow.com/questions/2543938/how-to-split-mobile-number-into-country-code-area-code-and-local - 数字](http://stackoverflow.com/questions/2543938/how-to-split-mobile-number-into-country-code-area-code-and-local-number) –

+0

可能重复的[如何知道短信号码和电话号码是一样的?](http://stackoverflow.com/questions/17608803/how-to-know-sms-number-and-phone-number-is-the-same) – QuestionC

回答

1

您可以使用PhoneNumberUtils.compare进行比较,并检查它们是否相同或not.It回报如果它们相同,则忽略国家代码等,则为true。

示例:

PhoneNumberUtils.compare(context, 1234567890, +911234567890); 

回报true

0

我已经做到了印度的手机号码格式

private String getNumber(String moNumber) { 
    Pattern special = Pattern.compile ("[[email protected]#$%&*()_+=|<>?{}\\[\\]~-]"); 
    if (moNumber.isEmpty()||moNumber.length()<10) { 
     MydebugClass.showToast(getContext(), "Please input valid Number"); 
     return null; 
    }else if (moNumber.length()>10 && !special.matcher(moNumber).find()){ 
     String[] number=moNumber.split(""); 
     StringBuilder stringBuilder=new StringBuilder(); 
     for(int i=moNumber.length();i>moNumber.length()-10;i--){ 
      stringBuilder.append(number[i]); 
     } 
     String reverse=new StringBuffer(stringBuilder).reverse().toString(); 
     return reverse; 
    }else if(moNumber.length()>10&&special.matcher(moNumber).find()){ 
     String numberOnly= moNumber.replaceAll("[^0-9]", ""); 
     String[] number=numberOnly.split(""); 
     StringBuilder stringBuilder=new StringBuilder(); 
     for(int i=moNumber.length();i>moNumber.length()-10;i--){ 
      stringBuilder.append(number[i]); 
     } 
     String reverse=new StringBuffer(stringBuilder).reverse().toString(); 
     Log.d("mobilenumberspecial",reverse); 
     return reverse; 
    } 
    else { 
     return moNumber; 
    } 
    return null; 
} 
相关问题