0

を含むすべての連絡先リストを1 つのクエリDisplay_nameで取得することは可能ですか?Phone NumberEmail

4

1 に答える 1

0

適切なコンテンツ プロバイダーの Uri に対してクエリを実行します。たとえば、android.provider.ContactsContract.CommonDataKinds.Email を使用するとメール アドレスを取得でき、他の列 (IN_VISIBLE_GROUP など) は暗黙的に結合されます。

ContentResolver resolver = getContentResolver();
Cursor c = resolver.query(
        Data.CONTENT_URI, 
        null, 
        Data.HAS_PHONE_NUMBER + "!=0 AND (" + Data.MIMETYPE + "=? OR " + Data.MIMETYPE + "=?)", 
        new String[]{Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE},
        Data.CONTACT_ID);

while (c.moveToNext()) {
    long id = c.getLong(c.getColumnIndex(Data.CONTACT_ID));
    String name = c.getString(c.getColumnIndex(Data.DISPLAY_NAME));
    String data1 = c.getString(c.getColumnIndex(Data.DATA1));

    System.out.println(id + ", name=" + name + ", data1=" + data1);
}
于 2012-11-23T10:48:37.120 に答える