0

J'ai rencontré le problème lors de la récupération du contact en utilisant ContentResolver.Numéro de contact tel qu'il est à partir de Liste de contacts

La liste des contacts montre le contact avec les espaces, mais après avoir récupéré le contact à l'aide du contenu, il supprime tous les espaces.

liste Contact: +91 XXXXX XXXXX

Après chercher: + 91XXXXXXXXXX (mauvais espaces suppression)

Mais si ce n'est pas le caractère enlève si le numéro est

Liste de contacts: +1 (XXX) XXX-XXXX

Après extraction: +1 (XXX) XXX-XXXX (Correct comme il est)

Ci-dessous le code utilise pour aller chercher le contact

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); 

Répondre

1

Le champ CommonDataKinds.Phone.NUMBER peut contenir un nombre n'importe quel format, pas nécessairement un utilisateur affichable amical. Pour formater le numéro à afficher à l'utilisateur, vous pouvez utiliser le package libphonenumber de Google, qui analyse un numéro de téléphone et vous permet de le formater dans un format convivial ou le format canonique e164 utile pour stocker et comparer.

https://github.com/googlei18n/libphonenumber