2011-06-15 2 views
6

나는 전화 번호를 얻고있다. 활동을 연장 한 연락처와 oncreate 방법으로 메일을 보낸다. fallowing 코드를 사용하여연락처 및 전화 번호에서 전자 메일을 가져 오는 방법 연락처 및 클래스에서 확장 활동 및 oncreate() 메서드가 있습니까?

:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 
      Class A extends Activity{ 

    new ClassB(this); 
} 

//////////////////////////////////////////////////// 
public static void getContactNumbers(Context context) { 
    String contactNumber = null; 
    int contactNumberType = Phone.TYPE_MOBILE; 
    String nameOfContact = 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)); 
       nameOfContact = cur 
         .getString(cur 
           .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

       if (Integer 
         .parseInt(cur.getString(cur 
           .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
        Cursor phones = cr 
          .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
            null, 
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
              + " = ?", new String[] { id }, 
            null); 

        while (phones.moveToNext()) { 
         contactNumber = phones.getString(phones 
           .getColumnIndex(Phone.NUMBER)); 
         contactNumberType = phones.getInt(phones 
           .getColumnIndex(Phone.TYPE)); 
         Log.i(TAG, "...Contact Name ...." + nameOfContact 
           + "...contact Number..." + contactNumber); 
         ApplicationConstants.phoneContacts 
           .add(new ContactNumberBean(nameOfContact, 
             contactNumber, contactNumberType)); 
        } 
        phones.close(); 
       } 

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

} 

/** 
* 
* This method is responsible to get native contacts and corresponding email 
* id (ApplicationConstants.emailContacts) 
* 
* @param context 
*/ 
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)); 
        ApplicationConstants.emailContacts 
          .add(new ContactEmailBean(contactName, 
            emailIdOfContact, emailType)); 

       } 
       emails.close(); 

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


} 

///////////////////////////////////////// 
그것은 결과를 얻기에서 잘 작동하지만 위의 예에서 fallowing 코드를 구현하는 방법을 모르는

:

ApplicationConstants.phoneContacts 
.add(new ContactNumberBean(nameOfContact, 
contactNumber, contactNumberType)); 

있는 경우를 하나는 나를 도와주세요.

답변

3

ContentResolver에 액세스하여 ContentProviders를 쿼리하기 위해서만 android.content.Context 객체에 액세스해야합니다. 활동은 컨텍스트를 확장하므로 작동합니다. android.app.Service는 Activity도 확장하므로 너무 유용합니다. android.app.Application 또한 Context를 확장하므로 너무 효과적입니다.

관련 문제