2010-02-05 10 views
7

Bir kişi kimliği verildiğinde, bu alanların her biri için farklı sorgular yaparak çeşitli iletişim bilgilerini (isim, telefon, e-posta kimliği, vb.) Edinebilirim.Android'de bir kişinin tüm ayrıntılarını nasıl alırım?

Ancak, bu kişi kimliğiyle ilişkili tüm ayrıntıları tek bir sorgu yaparak elde etmek için bir yöntem var mı?

+0

@Octavian: Ben soru başlığından * Android'i * çıkarmadan katılıyorum emin değilim. Bu, diğer teknolojilerle ilgili sorular için oldukça yaygın bir durum gibi görünüyor. Bu, meta için bir düzenleme sorusu olabilir. – NotMe

+0

@ChrisLively Bu konuda doğru olabileceğini itiraf etmeliyim. Onu değiştireceğim. –

cevap

12

Kullanımdan kaldırılan sınıflara atıfta bulunduğundan eğiticinin bir kısmını Content Providers üzerinde değiştirmek zorunda kaldınız, bu yardımcı olabilir.

import android.provider.ContactsContract.Contacts; 
import android.database.Cursor; 

// Form an array specifying which columns to return, you can add more. 
String[] projection = new String[] { 
         ContactsContract.Contacts.DISPLAY_NAME, 
         ContactsContract.CommonDataKinds.Phone 
         ContactsContract.CommonDataKinds.Email 
         }; 

Uri contacts = ContactsContract.Contacts.CONTENT_LOOKUP_URI; 
// id of the Contact to return. 
long id = 3; 

// Make the query. 
Cursor managedCursor = managedQuery(contacts, 
        projection, // Which columns to return 
        null,  // Which rows to return (all rows) 
           // Selection arguments (with a given ID) 
        ContactsContract.Contacts._ID = "id", 
           // Put the results in ascending order by name 
        ContactsContract.Contacts.DISPLAY_NAME + " ASC"); 
+0

Hızlı yanıt için teşekkürler. Ama ben 1.6 SDK kullanıyorum ve ContactsContract 2.0 ve üstü için çalışıyor gibi görünüyor. 1.6 ve Android – pankajagarwal

+0

@ frieza sürümleri için herhangi bir çözüm Geri dönün ve cevabın en üstünde bulunan İçerik Sağlayıcıları öğreticisine bakın. Görünüşe göre Anthony öğreticiyi aldı ve cevabını yayınladığında 2.0'a güncelledi, ama ihtiyacınız olan şey orijinal öğreticidir. –

+0

Er, bu benim hatamdı ve devam edip 2.0 SDK olduğunu varsaydım, ama mbaird haklı, 'İçerik Sağlayıcıları' bağlantısındaki eğitici sizin için iyi çalışmalı. –