我在使用 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