2013-08-06 5 views
1

Этот вопрос уже задан Getting contact email by name, но это не поможет для меня. У меня есть следующий код для получения адреса электронной почты, к сожалению, он не работает. кто-нибудь поможет решить эту проблему.не может получить адрес электронной почты

ContentResolver cr = getContentResolver(); 
Cursor emailCur = cr.query( 
       ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
       null, 
       ContactsContract.CommonDataKinds.Email.Display_Name + " = ?", 
       new String[]{name}, null); 
TextView tv2 = (TextView) findViewById(R.id.textView5); 

while (emailCur.moveToNext()) { 
       String email = emailCur.getString(
           emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
       String emailType = emailCur.getString(
           emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
       tv2.setText(email); 
       Toast.makeText(getApplicationContext(), ""+email, Toast.LENGTH_LONG).show(); 
      } 
      emailCur.close(); 

, а также я попытался использовать contact_id.

ответ

0

Это может помочь вам

public static void getContactEmails(Context context) { 
     String emailIdOfContact = null; 
     int emailType = Email.TYPE_WORK; 
     String contactName = null; 


      ContentResolver cr = context.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(BaseColumns._ID)); 
        contactName = cur 
          .getString(cur 
            .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
        // Log.i(TAG,"....contact name....." + 
        // contactName); 

        cr.query(
          ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
          null, 
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
            + " = ?", new String[] { id }, null); 

        Cursor emails = cr.query(Email.CONTENT_URI, null, 
          Email.CONTACT_ID + " = " + id, null, null); 
        while (emails.moveToNext()) { 
         emailIdOfContact = emails.getString(emails 
           .getColumnIndex(Email.DATA)); 
         // Log.i(TAG,"...COntact Name ...." 
         // + contactName + "...contact Number..." 
         // + emailIdOfContact); 
         emailType = emails.getInt(emails 
           .getColumnIndex(Phone.TYPE)); 


        } 
        emails.close(); 

       } 
      }// end of contact name cursor 
      cur.close(); 


    } 
+0

Уже попробовал это. моя проблема заключается в том, что итерация цикла равна нулю, и она не начинается. – Aravin

+0

Добавили ли вы разрешение на доступ к контакту в манифесте? –

+0