2015-11-06 62 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; 
} 
相關問題