Попросите пользователя выбрать контакт и получить номер мобильного телефона контакта - PullRequest
0 голосов
/ 21 августа 2011

Я пытаюсь, чтобы пользователь выбрал контакт из своего списка контактов, чтобы я мог обработать этот номер. Мой код для запуска процесса выбора списка

    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,  
            Contacts.Phones.CONTENT_URI);  
    startActivityForResult(contactPickerIntent, PICK_CONTACT);

и мой код получения

@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) {

            Bundle extras = data.getExtras();  
            Set<String> keys = extras.keySet();  
            Iterator<String> iterate = keys.iterator();  
            while (iterate.hasNext()) {  
                String key = iterate.next();  
                Log.v(TAG, key + "[" + extras.get(key) + "]");  
            }  
            Uri result = data.getData();  
            Log.v(TAG, "Got a result: "  
                + result.toString());  
        }
    break;
    }
}

но в пакете дополнений нет ни имен, ни телефонных номеров. Как я могу получить результат выбора пользователя?

1 Ответ

1 голос
/ 21 августа 2011

Вызов getData () содержит Uri, на котором вы можете открыть курсор. Попробуйте следующее:

   Uri resultUri = data.getData();
   Cursor cursor =  managedQuery(resultUri, null, null, null, null);
   if (cursor.moveToFirst()) {
       // Found results process cursor
   }
...