Oui, cela est possible en utilisant ContactsContract.PhoneLookup.CONTENT_FILTER_URI
dans Android 2.0 et supérieur et Contacts.Phones.CONTENT_FILTER_URL
dans Android 1.6 et versions antérieures. Par exemple, voir la documentation pour ContactsContract.PhoneLookup. Extrait ci-dessous:
// Android 1.6 and earlier (backwards compatible for Android 2.0+)
Uri uri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(phoneNumber));
// Android 2.0 and later
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
// Query the filter URI
String[] projection = new String[]{ PhoneLookup.DISPLAY_NAME, ...
Cursor cursor = context.getContentResolver().query(uri, projection, ...
MISE À JOUR: Le format du numéro de téléphone n'a pas d'importance. La comparaison est robuste et hautement optimisée sur Android; c'est fait en utilisant une fonction native sqlite nommée PHONE_NUMBERS_EQUAL
. Pour plus de détails, search the codebase for this method. En passant, je ne suis pas certain que l'utilisation de cette fonction soit directement sécurisée dans vos propres applications, mais je ne le ferais pas.
Vous pouvez probablement généraliser cette question à quelque chose comme « Comment regardez-vous un contact donné une chaîne de numéro de téléphone brute, non formatée? –