0

我碰到問題,同時使用ContentResolver提取聯繫人。獲取聯繫人號碼,因爲它是從聯繫人列表

聯繫人列表顯示與空格的聯繫,但在使用內容解析程序獲取聯繫人之後,它將刪除所有空格。

聯繫人列表:+91 XXXXX XXXXX

後取:+ 91XXXXXXXXXX (錯去掉空格)

但是,如果它不刪除字符,如果號碼是

聯繫清單:+1(XXX)XXX-XXXX

取後:1(XXX)XXX-XXXX (正確,因爲它是)

下面代碼是使用抓取接觸

String order = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"; 
String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}; 
Cursor cursor = getContentResolver().query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, 
       null, null, order); 

回答

1

CommonDataKinds.Phone.NUMBER字段可以包含在多個任何格式,不一定是用戶可顯示友好的格式。 要格式化顯示給用戶的號碼,您可以使用Google提供的libphonenumber軟件包,該軟件包解析電話號碼,並允許您將其格式化爲用戶友好的格式或用於存儲和比較的規範e164格式。

https://github.com/googlei18n/libphonenumber

相關問題