android - 如何通过 URI 打开 native 名片

标签 android android-intent contactscontract

有人可以解释一下如何为特定联系人 URi 打开本地联系人

我设法通过以下方式解析联系人 URI:

Uri lookupUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
                Uri.encode(displayName));

然后我试着这样做:

     Intent intent = new Intent(Intent.ACTION_VIEW);
     intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
     intent.putExtra(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, "555");
     context.startActivity(intent);

但只是打开 native 通讯录,没有任何解析

最佳答案

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

您可以使用 contentResolver 浏览来检索 contactId:

id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name = cur.getString( cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.d(tag, "Id: "+ id+"\t Name: "+name);

关于android - 如何通过 URI 打开 native 名片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674199/

相关文章:

android - SQLiteBlobTooBigException : Row too big to fit into CursorWindow requiredPos=0, totalRows = 1

android - Intent 在android中不起作用

android - 是否可以将 Android 应用程序嵌入到现有应用程序中?

java - 从电话中获取一些联系信息数据

Android Facebook SDK 上传过程中的进度条

android - 前 6 个 ListView 元素不断被 getView() 调用

Android加速度计和Android版本

java - 如何重置createChooser Intent 中的数据

android - 读取所有联系人数据

android - 通过 ContactsContract 和 ContentProvider 添加带照片的新联系人