-
我想从我的应用程序中打开Contacts pick活动,搜索字段应该以编程方式填充。有人能建议我应该使用什么URI吗?或者有什么可以放在intent的额外部分吗?
private static final int PICK_CONTACT_SUBACTIVITY = 2; private void startContactActivity() { Uri uri = Uri.parse("content://contacts/people"); // Here in this normally we pass number e.g. Uri.encode("987") but i want to pass name as filter is it possible? // I have also tried //uri = Uri.withAppendedPath(android.provider.ContactsContract.Contacts.CONTENT_FILTER_URI, Uri.encode("pra")); //uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode("pra")); uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, Uri.encode("pra")); Intent intent = new Intent(Intent.ACTION_PICK, uri); startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY); }
有人能建议我如何做到这一点吗?
您可以执行以下操作:如何在我的应用程序中从android的电话簿中选择联系人号码或developer.android.com/training/contacts-provider/modify-data
似乎不可能以编程方式指定筛选器。
Android SDK文档(在"意图检索和修改"一章中)指出,对于ACTION_PICK
,您只能使用Contacts.CONTENT_URI
、Phone.CONTENT_URI
、StructuredPostal.CONTENT_URI
、Email.CONTENT_URI
。这是一个间接的过滤器(所有联系人、所有电话号码、所有邮政地址或所有电子邮件),但仅限于此。