0

ContactPicker を使用して連絡先の電話番号と DISPLAY NAME を取得するのは簡単に思えます - このようなものを使用します

Intent intent = new Intent(Intent.ACTION_PICK, 
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent, REQUEST_PICK_CONTACT);

ただし、これを使用すると、電話番号と表示名を取得できますが、番号を取得すると、姓/名を取得する適切な方法が見つからないようです。連絡先自体の ID は、startActivityForResult から返されたものでは利用できないようです。連絡先を見つけるために表示名または番号に基づいて再クエリを実行できると思いますが、それは厄介なようです...もっと簡単な方法があると思っていましたが、ここで間違っている可能性があります.

4

1 に答える 1

0

連絡先ピッカーは、要求された連絡先の URI を返します。この URI に対して再クエリを実行する必要があり、必要なものは何でも取得できます。

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
  super.onActivityResult(reqCode, resultCode, data);

  switch (reqCode) {
    case (PICK_CONTACT) :
      if (resultCode == Activity.RESULT_OK) {
        Uri contactData = data.getData();
        Cursor c =  getContentResolver().query(contactData, null, null, null, null);
        if (c.moveToFirst()) {
         // TODO Whatever you want to do with the selected contact
        }
      }
      break;
  }
}
于 2013-06-02T22:40:11.250 に答える