На что вернулось Ури из диспетчера контактов?

Я пытаюсь выбрать номер телефона из списка контактов. Все работает нормально, но я сохраняю номер телефона. Я хотел бы сохранить указатель на номер телефона, чтобы, если он изменился, я получаю новый номер.

Я думаю, что я должен просто сохранить Uri, что я вернусь в onActivityResult, но я не уверен, что именно это указывает.

Док говорит, что startActivityForResult () * "возвращает URI содержимого выбранной строки. Форма URI – это URI содержимого таблицы, к которому добавлен LOOKUP_ID строки." *

Может ли кто-нибудь указать мне на документ или объяснить, что это за Ури? Является лучшим способом сохранить указатель на номер телефона, кроме сохранения этого uri и повторного запроса?

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

Я выбираю контакт, используя подборщик контактов как таковой;

Intent pickContactIntent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); 

Затем, выбирая его, я получаю номер телефона, используя что-то вроде этого:

 public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_CONTACT_REQUEST) { if (resultCode == android.app.Activity.RESULT_OK) { Uri contactUri = data.getData(); Cursor cursor = contentResolver.query(contactUri,null, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnPhone = cursor.getColumnIndex(Phone.NUMBER); String number = cursor.getString(columnPhone); } } } }