0
    String exactname = "Joe Blogs"

連絡先の_IDではなくDISPLAY_NAMEを使用して、連絡先を直接開く方法の高低を検索しました。

編集:ジョーブログは間違いなくユニークなエントリです。

この答えから

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID));
    intent.setData(uri);
    context.startActivity(intent);

上記のような意図で彼の連絡先を開く前に、Joe BlogsのIDを照会する必要がありますか?それとも私は(うまくいけば)何かを逃したことがありますか?

前もって感謝します。

4

1 に答える 1

1

はい、次のようなものでデータベースをクエリする必要があります。

Cursor cur = getContentResolver().query(CONTENT_URI, null, DISPLAY_NAME + "=?", new String[] { "Joe Blogs" }, null);

Cursor次に、 withによって返された行を取得します。

if (!cur.moveToFirst()) {
    // Then the cursor isn't empty. Get the contact's id.
    contactId = cur.getInt(cur.getColumnIndex(CONTACT_ID));
}

これにより、の最初のレコードに関連付けられた連絡先IDが返されCursorます。

于 2012-06-07T12:48:25.820 に答える