Sì, questo è possibile utilizzando ContactsContract.PhoneLookup.CONTENT_FILTER_URI
in Android 2.0 e versioni successive e Contacts.Phones.CONTENT_FILTER_URL
in Android 1.6 e versioni precedenti.
Ad esempio, consultare la documentazione di ContactsContract.PhoneLookup. Estratto di seguito:
// 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, ...
UPDATE: Il formato del numero di telefono non importa. Il confronto è robusto e altamente ottimizzato su Android; è fatto usando una funzione nativa sqlite chiamata PHONE_NUMBERS_EQUAL
. Per ulteriori dettagli, search the codebase for this method. A proposito, non sono sicuro che sia sicuro utilizzare questa funzione direttamente nelle tue app, ma non lo farei.
fonte
2010-02-01 08:40:32
Probabilmente si può generalizzare questo domanda a qualcosa come: 'Come si fa a cercare un contatto dato una stringa di numeri di telefono grezza e non formattata? ' –