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

相关问题