2011-10-05 26 views
0

基本上,事情更像黑白,在一部電話(Galaxy S)上正常工作並且在另一部電話(Nexus one,當然是我的客戶端)上,情況並非如此。檢索Android 2.1+中的聯繫人組標識時出錯

首先我顯示一個有電話號碼的聯繫人列表。用戶選擇備份聯繫人,我嘗試加載所有的聯繫人信息,將其存儲在本地數據庫

cursor = contentResolver.query(ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id), null, null, null, null); 

if (cursor != null && cursor.getCount() >0) 
{ 
    cursor.moveToFirst(); 

    id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
    //get all the things I need like phones, picture, etc 

} 

使用該ID我試圖讓聯繫人的組ID

cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI, 
        null, 
        ContactsContract.Data.RAW_CONTACT_ID 
         + "=" 
         + id 
         + " AND " 
         + ContactsContract.Data.MIMETYPE 
         + "='" 
         + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE 
         + "'", 
         null, 
         null); 
      if (cursor != null && cursor.getCount() >0) 
      { 
       cursor.moveToFirst(); 

       groupId= cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DATA1)); 
       cursor.close(); 
      } 

好了,測試通過添加一個新的聯繫人,在我的手機上,我得到了groupId = 1,意思是系統:我的聯繫人。在Nexus One上,我爲組ID分配了空值。當然,恢復在我的手機上工作正常,而在另一部手機上,聯繫人不可見,因爲它不屬於任何可見羣體...

任何想法?

回答

0

問題是一個誤解......我需要RAW聯繫人ID和我使用ContactID ..所以,在搜索GroupId之前,我需要獲取聯繫人原始ID

相關問題