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

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • Attempts at least

    Attempts at

    1 Ocak 2007