2011-06-15 21 views
6

我收到電話號碼,來自聯繫人的郵件用於擴展活動和oncreate方法。如何從聯繫人和類中獲取聯繫人和電話號碼的電子郵件不擴展活動和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(); 


} 

///////////////////////////////////////// 

它是從取得成果工作正常,但我不知道如何實現在上面的例子休耕代碼:

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

如果任何一個知道這個請幫助我。

回答

3

您只需訪問android.content.Context對象即可訪問ContentResolver並查詢ContentProviders。 Activity擴展了Context,所以可以工作。 android.app.Service也擴展了Activity,所以也可以。 android.app.Application也擴展了Context,所以也可以工作。

相關問題