2011-06-15 3 views
9

में पसंदीदा संपर्क प्राप्त करना मैं एंड्रॉइड संपर्कों की पसंदीदा सूची में सभी संपर्कों को प्राप्त करने का प्रयास कर रहा हूं। वर्तमान में, मैं पसंदीदा समूह आईडी समेत सभी समूह आईडी प्राप्त कर सकता हूं। लेकिन ऐसा लगता है कि कोई संपर्क नहीं है जिसमें समूह आईडी पसंदीदा समूह आईडी के रूप में है।एंड्रॉइड

मैं प्रत्येक समूह में सभी समूह आईडी और संपर्क प्राप्त करने का प्रयास कर रहा हूं। मुद्रण दो सूची के बाद, मैंने पाया है कि पसंदीदा के समूह आईडी संपर्क सूची

ArrayList<String> favGroupId=new ArrayList<String>(); 
     final String[] GROUP_PROJECTION = new String[] { 
       ContactsContract.Groups._ID, ContactsContract.Groups.TITLE }; 
     Cursor cursor = getContentResolver().query(
     ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, null, 
       null, ContactsContract.Groups.TITLE); 

     while (cursor.moveToNext()) { 
      String id = cursor.getString(cursor 
        .getColumnIndex(ContactsContract.Groups._ID)); 
      Log.v("Test",id); 

      String gTitle = (cursor.getString(cursor 
        .getColumnIndex(ContactsContract.Groups.TITLE))); 

      Log.v("Test",gTitle); 
      if (gTitle.contains("Favorite_")) { 
       gTitle = "Favorites"; 
       favGroupId.add(id); 
      } 
     } 
     cursor.close(); 

उत्तर

22

आप ContactsContract.Contact कक्षा में STARRED क्षेत्र का उपयोग कर सकते में नहीं है। आप के लिए आपकी क्वेरी को बदलते हैं:

Cursor cursor = this.managedQuery(
    ContactsContract.Contacts.CONTENT_URI, projection, "starred=?", 
    new String[] {"1"}, null); 

इस सभी संपर्कों है कि Android पर डिफ़ॉल्ट संपर्क ऐप में पसंदीदा टैब में प्रदर्शित की एक सूची प्रदान करना चाहिए।

4

पूरा जवाब है, एक आशय के साथ संपर्क को खोलने के लिए intentUriString सहित:

Map getFavoriteContacts(){ 

    Map contactMap = new HashMap(); 

    Uri queryUri = ContactsContract.Contacts.CONTENT_URI; 

    String[] projection = new String[] { 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.Contacts.STARRED}; 

    String selection =ContactsContract.Contacts.STARRED + "='1'"; 

    Cursor cursor = managedQuery(queryUri, projection, selection, null, null); 

    while (cursor.moveToNext()) { 
     String contactID = cursor.getString(cursor 
       .getColumnIndex(ContactsContract.Contacts._ID)); 

     Intent intent = new Intent(Intent.ACTION_VIEW); 
     Uri uri = Uri.withAppendedPath(
      ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID)); 
     intent.setData(uri); 
     String intentUriString = intent.toUri(0); 

     String title = (cursor.getString(
      cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); 

     contactMap.put(title,intentUriString); 
    } 

    cursor.close(); 
    return contactMap; 
}