2014-03-25 3 views
0

삼성 갤럭시 S4의 모든 즐겨 찾기 연락처를 가져 오려고했습니다. 아래 코드를 사용하고 있습니다 :즐겨 찾기 연락처 목록은 항상 null입니까?

public void getFavoritesContactsList(ContentResolver cr) { 


     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))); 

      name1.add(title); 
      _idd.add(contactID); 
     } 

     cursor.close(); 
    } 

결과는 항상 null입니다.

+0

코드가 완벽합니다. 내가 좋아하는 연락처가 있는지 확인하고 입력 한 매니페스트를 확인하십시오 READ_CONTACT permission – Praveen

+0

@Praveen : 감사합니다. Android 장치에서 즐겨 찾기 그룹을 선택했는데 즐겨 찾는 연락처가 많습니다. "android.permission .READ_CONTACTS "도 명시해야합니다. 나는 어떻게되는지 모른다. – binhnt

+0

방금 ​​삼성 S 듀오에서 코드를 실행했습니다 .. 완벽합니다 .. 내가 좋아하는 모든 연락처를 표시했습니다 ... 즐겨 찾는 연락처를 어떻게 표시하고 있습니까? – Praveen

답변

0
public 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; 
} 
+0

고마워,하지만 그것은 나를 위해 작동하지 않습니다! – binhnt