Saltar al contenido

cómo acceder a los contactos en mi programa de Android

Solución:

use este código para elegir el contacto:

 Button button = (Button)findViewById(R.id.pickcontact);

    button.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                 startActivityForResult(intent, PICK_CONTACT);
             }
         });



    @Override public void onActivityResult(int reqCode, int resultCode, Intent data){ super.onActivityResult(reqCode, resultCode, data);

    switch(reqCode)
    {
       case (PICK_CONTACT):
         if (resultCode == Activity.RESULT_OK)
         {
             Uri contactData = data.getData();
             Cursor c = managedQuery(contactData, null, null, null, null);
          if (c.moveToFirst())
          {
          String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));

          String hasPhone =
          c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

          if (hasPhone.equalsIgnoreCase("1")) 
          {
         Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, 
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,null, null);
            phones.moveToFirst();
            String cNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
           // Toast.makeText(getApplicationContext(), cNumber, Toast.LENGTH_SHORT).show();
            setCn(cNumber);
          }
         }
       }
    }
   }

revisa estos enlaces:

¿Cómo llamar a la lista de contactos de Android?

Cómo obtener contactos de la agenda nativa en Android

Cómo obtener todos los detalles de un contacto en Android

¿Cómo obtener el nombre y apellido de los contactos de Android?

Cómo importar contactos de la agenda a nuestra aplicación

Extracción de contactos de Android

Cómo obtener todos los contactos de Android pero sin los que están en SIM

http://mobile.tutsplus.com/tutorials/android/android-essentials-using-the-contact-picker/

prueba este código. esto almacena todos los contactos en ArrayList

ArrayList<HashMap<String,String>> contactData=new ArrayList<HashMap<String,String>>();
ContentResolver cr = getContentResolver();
 Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
 while (cursor.moveToNext()) {
     try{
     String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
     String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
     String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
     if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
         Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);
         while (phones.moveToNext()) { 
             String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));
             HashMap<String,String> map=new HashMap<String,String>();
             map.put("name", name);
             map.put("number", phoneNumber);
             contactData.add(map);
         } 
         phones.close(); 
     }
 }catch(Exception e){}
 }

si desea almacenar el contacto específico, utilice la condición if.

¡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. Los campos obligatorios están marcados con *