2011-05-11 3 views
0

전화 연락처에서 이메일 목록을 생성하려고하는데 특히 이메일을받는 데 문제가 있습니다. 나는 이름과 전화 번호를 얻을 수 있지만 이메일은받지 못합니다. ArrayList 크기는 루프의 끝에서 모두 0입니다. 아무도 내가 잘못하고있는 것을 발견하거나 이메일이 전화 번호, 이름 및 기타 정보와 다른 점을 말해 줄 수 있습니까?전화 연락처에서 이메일 주소를로드하는 데 문제가 있습니다.

ContentResolver cr = getContentResolver(); 

    Cursor emailCur = cr.query(
      ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, 
      ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
      null, null); 

    ArrayList<String> emails = new ArrayList<String>(); 
    ArrayList<String> emailTypes = new ArrayList<String>(); 

    while (emailCur.moveToNext()) { 
     // This would allow you get several email addresses 
     // if the email addresses were stored in an array 
     String email = emailCur 
       .getString(emailCur 
         .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
     String emailType = emailCur 
       .getString(emailCur 
         .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 

     emails.add(email); 
     emailTypes.add(emailType); 

    } 

    emailCur.close(); 

    Log.i("Emails Count", Integer.toString(emails.size())); 
    for (int i = 0; i < emails.size(); i++) { 
     Log.i("Emails " + i, emails.get(i)); 
    } 

    Log.i("EmailTypes Count", Integer.toString(emailTypes.size())); 
    for (int i = 0; i < emailTypes.size(); i++) { 
     Log.i("EmailTypes " + i, emailTypes.get(i)); 
    } 

답변

2

이 코드를 사용하여 기기에서 이메일을 가져옵니다.

ContentResolver cr = getContentResolver(); 
       cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null); 

       emailIndex=0; 
       if (cur.getCount() > 0) 
       { 

        while (cur.moveToNext()) 
        { 
         String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
         name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

         Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null, 
           ContactsContract.CommonDataKinds.Email.CONTACT_ID+ " = " + id, null, null); 
         while (emails.moveToNext()) 
         { 
          // This would allow you get several email addresses 
          String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
          Log.v(name+"==>", emailAddress); 

         } 
         emails.close();   
        } 
        cur.close(); 
+0

완벽하게 작동합니다. 감사 – NotACleverMan

관련 문제