Uri从联系人选择器返回的内容实际指向了什么?

时间:2013-09-04 16:30:37

标签: android

我正在尝试从联系人列表中选择一个电话号码。一切都很好,但我正在存储电话号码。我想存储一个指向电话号码的指针,这样如果它被更改,我会得到新号码。

我想我应该把我回来的Uri存放在onActivityResult上,但我不确定究竟是什么意思。

doc表示startActivityForResult()*"返回所选行的内容URI。 URI的形式是表的内容URI,其中附加了行的LOOKUP_ID。" *

有人能指出我的文件,或解释这个Uri是什么? 是否有更好的方法将指针存储到电话号码,而不是存储此uri然后再次查询?

顺便说一下,我可能只是存储两个并在contacts数据库上实现一个监听器,只有在数据库更新时才重新查询。

我使用联系人选择器选择联系人;

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);
            }
        }   
    }
}

0 个答案:

没有答案