Saltar al contenido

Android: ¿Verificar el número de teléfono presente en la lista de contactos? (Número de teléfono recuperado de una llamada telefónica)

Después de observar en diferentes repositorios y páginas de internet al final dimos con la resolución que te enseñaremos pronto.

Solución:

public boolean contactExists(Context context, String number) 
   /// number is the phone number
   Uri lookupUri = Uri.withAppendedPath(
   PhoneLookup.CONTENT_FILTER_URI, 
   Uri.encode(number));
   String[] mPhoneNumberProjection =  PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME ;
   Cursor cur = context.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
   try 
      if (cur.moveToFirst()) 
         cur.close();
         return true;
   
    finally 
   if (cur != null)
      cur.close();
   
   return false;

Creo que es importante decir que debe agregar lo siguiente en su archivo de manifiesto.

 

para 1, debe echar un vistazo al proveedor recomendado de ContactsContract.PhoneLookup

Una tabla que representa el resultado de buscar un número de teléfono, por ejemplo, para el identificador de llamadas. Para realizar una búsqueda, debe agregar el número que desea encontrar a CONTENT_FILTER_URI. Esta consulta está altamente optimizada.

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
Cursor mycursor=resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,...
if (mycursor!=null && mycursor.moveToFirst()) 
// record exists

para 2 puedes usar el context desde el método onReceive para llamar a métodos que pertenecen a Context

ContentResolver cr=context.getContentResolver();

Si estás contento con lo expuesto, eres capaz de dejar un escrito acerca de qué te ha parecido esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.