android - 在没有扩展类 Activity 的情况下,如何从联系人那里获取电子邮件 ID 并从联系人那里获取电话号码?

标签 android

大家好,如何实现从联系人获取电子邮件 ID 和从联系人获取电话号码的编码,告诉我如何克服这个问题 注意:类没有 extends Activity 和 oncreate() 方法也请帮助我继续前进

最佳答案

您的类没有扩展 Activity 或 onCreate() 方法。因此,将扩展 Activity 的类的上下文参数传递给此类。

须藤代码

Class A extends Activity{

new ClassB(this);
}

这里Class B没有extends Activity。 但是把下面的方法写到class B中的gwt contacts和email id

public static void getContactNumbers(Context context) {
    String contactNumber = null;
    int contactNumberType = Phone.TYPE_MOBILE;
    String nameOfContact = null;
    ArrayList<ContactNumberBean> phoneContacts = new ArrayList<ContactNumberBean>();
        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));

                        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;
    ArrayList<ContactEmailBean> emailContacts = new ArrayList<ContactEmailBean>();



        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));
                    emailContacts
                            .add(new ContactEmailBean(contactName,
                                    emailIdOfContact, emailType));

                }
                emails.close();

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


}

写两个bean类

电子邮件Bean

public class ContactEmailBean {
        String emailType = null;
        String nameOfContact = null;

        String emailIdOfContact = null;

        public ContactEmailBean(String nameOfContact, String emailIdOfContact,
                int emailType) {
            switch (emailType) {
            case Email.TYPE_HOME:
                this.emailType = "HOME";
                // do something with the Home number here...
                break;
            case Email.TYPE_MOBILE:
                this.emailType = "MOBILE";
                // do something with the Mobile number here...
                break;
            case Email.TYPE_WORK:
                this.emailType = "WORK";
                // do something with the Work number here...
                break;

            default:
                this.emailType = "OTHER";
                break;
            }
            this.nameOfContact = nameOfContact;
            this.emailIdOfContact = emailIdOfContact;

        }

        public String getNameOfContact() {
            return this.nameOfContact;
        }

        public String getEmailType() {
            return this.emailType;
        }

        public String getEmailIdOfContact() {
            return this.emailIdOfContact;
        }
    }

ContactNumberBean

public class ContactNumberBean {
        String phoneNumberType = null;
        String nameOfContact = null;
        String contactNumber = null;

        public ContactNumberBean(String nameOfContact, String contactNumber,
                int contactNumberType) {
            switch (contactNumberType) {
            case Phone.TYPE_HOME:
                this.phoneNumberType = "HOME";
                // do something with the Home number here...
                break;
            case Phone.TYPE_MOBILE:
                this.phoneNumberType = "MOBILE";
                // do something with the Mobile number here...
                break;
            case Phone.TYPE_WORK:
                this.phoneNumberType = "WORK";
                // do something with the Work number here...
                break;
            case Phone.TYPE_WORK_MOBILE:
                this.phoneNumberType = "WORK";
                break;

            case Phone.TYPE_FAX_HOME:
                this.phoneNumberType = "FAX";
                break;
            default:
                this.phoneNumberType = "OTHER";
                break;
            }
            this.nameOfContact = nameOfContact;
            this.contactNumber = contactNumber;

        }

        public String getNameOfContact() {
            return this.nameOfContact;
        }

        public String getPhoneNumberType() {
            return this.phoneNumberType;
        }

        public String getContactNumber() {
            return this.contactNumber;
        }

}

关于android - 在没有扩展类 Activity 的情况下,如何从联系人那里获取电子邮件 ID 并从联系人那里获取电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224080/

相关文章:

android - GsaIOException 缓冲区溢出,没有可用空间

android - ListView中的OnFling,获取滑动的Item信息

安卓工作室 : “libpng warning: iCCP: Not recognizing known sRGB profile that has been edited”

java - android DialogFragment mDialog 为空导致异常

android:cacheColorHint ="#00000000"不适用于 <ExpandableListView

java - Android 如何在 "Force Stop"应用程序之后获取最后一个焦点 Activity

android - 在 android 中使用 ActionBar Inside Fragment 类

java - 在请求权限之前 Android 应用程序已关闭?怎么解决呢?

android - Nexus 5x 反向风景传感器在 Android 相机预览应用程序中修复

android - 使用 Retrofit2 调用 API 来保存和检索 JWT Token