0

内部電話帳から連絡先とメールを取得する必要があるアプリを開発しています..

Googleで検索した後、phonenumとnameを取得するための次のコードが見つかりました。

Main.java

Cursor numcur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null);
    if (numcur != null) {
        while (numcur.moveToNext()) {
            name = numcur.getString(numcur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            number = numcur.getString(numcur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            phonenumarray.add(number);
            displaynamearray.add(name);

        }
    }

しかし、ここではメールIDを取得するために、以下のように別のカーソルを使用しています..

Cursor emailcur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, null,null, null);
    if (emailcur != null) {
        while (emailcur.moveToNext()) {
            email = emailcur.getString(emailcur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1));
                emailarray.add(email);  

        }
    }

ここでは、contact2 のリストビューに値を追加するときに個別に値を取得しています。contact2 は contact7 メール ID を表示し、contact3 は contat5 メール ID を下の図に示すように表示しています。 ここに画像の説明を入力

それで、同じ連絡先の電話番号、メールIDを取得する方法を誰か助けてもらえますか..

4

2 に答える 2

0

このようにしてみてください

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
    while (phones.moveToNext()) {
    String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));  
    String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));


    ContactBean objContact = new ContactBean();   
    objContact.setName(name);    
    objContact.setPhoneNo(phoneNumber);   
    list.add(objContact);

これを参照してくださいAndroidデバイスのプライマリ電子メールアドレスを取得する方法

于 2013-03-15T12:02:48.613 に答える
0

アプローチは、http://developer.android.com/guide/topics/providers/contacts-provider.htmlで説明されているようにLOOKUP_KEYを使用することです

例はここにあります http://android-er.blogspot.in/2012/12/access-contactscontractcommondatakindsp.html

パフォーマンスを向上させるためにCursorJoinerの概念を取り入れることもできます http://asyncindicator.blogspot.in/2012/12/cursorjoiner-and-matrixcursor.html

于 2013-03-15T12:02:58.587 に答える