2013-03-21 152 views
1

我有一個具有多個名稱的聯繫人列表,其中包含具有相同電子郵件的Ids.How我可以修改下面的代碼,以便僅使用不同的電子郵件ID獲取姓名。從聯繫人列表中獲取不同的電子郵件ID

public ArrayList<String> getNameEmailDetails(){ 
     ArrayList<String> names = new ArrayList<String>(); 
     ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
     if (cur.getCount() > 0) { 
      while (cur.moveToNext()) { 
       String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
       Cursor cur1 = cr.query( 
         ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, 
         ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
           new String[]{id}, null); 
       while (cur1.moveToNext()) { 
        //to get the contact names 
        String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
        Log.e("Name :", name); 
        String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
        Log.e("Email", email); 
        if(email!=null){ 
         names.add(name); 
        } 
       } 
       cur1.close(); 
      } 
     } 
     return names; 
    } 

回答

1

有SQLite中獲得不同的值光標,真正的使用率給出了不同的值僅

Cursor cursor = sqliteDB.query(true,"window",new String[]{"MediaType","_id",TAG_DATA_OR_LOCATION}, null, null,"DataOrLocation", null, null, null); 

公共光標查詢(布爾不同,字符串表的String []列,String selection,String [] selectionArgs,String groupBy,String having,String orderBy,String limit)

+0

我想訪問聯繫人列表(我更喜歡contentResolver)我不認爲sqliteDB將在手機的聯繫人列表上工作。正確的我如果我錯了 – Abx 2013-03-21 10:59:16

相關問題