从联系人列表中获取联系人号码



我在使用 ContentResolver 获取联系人时遇到了问题。

联系人

列表显示与空格的联系人,但在使用内容解析程序获取联系人后,它会删除所有空格。

联系人列表 : +91 XXXXX XXXXX

获取后:+91XXXXXXXXXXX(错误删除空格(

但是,如果数字是,则不会删除字符

联系人列表 : +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);

CommonDataKinds.Phone.NUMBER字段可以包含任何格式的数字,不一定是用户可显示的友好数字。要格式化号码以显示给用户,您可以使用 Google 的 libphonenumber 包,该包解析电话号码并允许您将其格式化为用户友好的格式或用于存储和比较的规范 e164 格式。

https://github.com/googlei18n/libphonenumber

最新更新