SORU
12 Kasım 2009, PERŞEMBE


Nasıl Android 2.0 kişileri okumak

Android 2.0 üzerinde çalışıyorum ve tüm kişilerin listesini almak için çalışıyorum.

Beriandroid.sağlayıcı.Rehber.İnsanlarolur kaldırılmış kullanmak zorunda kaldımandroid.sağlayıcı.ContactsContract(Örn: telefon defteri tüm kişiler listesini almak) kullanmak için ne kadar uygun bir örnek bulamıyorum ama.

Kimse böyle bir örnek bulmak için nereye bilir?

CEVAP
23 Kasım 2009, PAZARTESİ


Öncelikle, eklediğiniz emin olun

<uses-permission android:name="android.permission.READ_CONTACTS"/>

senin androidmanifest.xml dosya, daha sonra bu gibi telefonunuzun rehber döngü

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
while (cursor.moveToNext()) { 
   String contactId = cursor.getString(cursor.getColumnIndex( 
   ContactsContract.Contacts._ID)); 
   String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
   if (Boolean.parseBoolean(hasPhone)) { 
      // You know it has a number so now query it like this
      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));                 
      } 
      phones.close(); 
   }

   Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID   " = "   contactId, null, null); 
   while (emails.moveToNext()) { 
      // This would allow you get several email addresses 
      String emailAddress = emails.getString( 
      emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
   } 
   emails.close();
}
cursor.close(); 

Ayrıca, rehber döngü ve sadece bu şekilde isim ve telefon numarası:

Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

while(people.moveToNext()) {
   int nameFieldColumnIndex = people.getColumnIndex(PhoneLookup.DISPLAY_NAME);
   String contact = people.getString(nameFieldColumnIndex);
   int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER);
   String number = people.getString(numberFieldColumnIndex);
}

people.close();

Eğer bir kişiden Notlar gibi şeyler almak istiyorsanız ayrıca, o zaman farklı bir URI aşağıdaki (bu yöntemi kullanmak için çekinmeyin) gibi kullanmanız gerekir:

private String getNote(long contactId) { 
   String note = null; 
   String[] columns = new String[] { ContactsContract.CommonDataKinds.Note.NOTE }; 
   String where = ContactsContract.Data.RAW_CONTACT_ID   " = ? AND "   ContactsContract.Data.MIMETYPE   " = ?"; 
   String[] whereParameters = new String[]{Long.toString(contactId), ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE}; 
   Cursor contacts = getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, where, whereParameters, null); 
   if (contacts.moveToFirst()) { 
      rv = contacts.getString(0); 
   } 
   contacts.close(); 
   return note; 
} 

Sadece kartvizit kimliğini ancak sorgu için mıme tipi kullandım bu sefer dikkat edin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • Official Clouds

    Official Clo

    1 HAZİRAN 2011
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012