如何通过编程方式以编程方式打开联系人选择搜索过滤器?

时间:2014-04-21 11:42:48

标签: android contacts android-contacts intentfilter contactscontract

  1. 我想从我的应用程序打开联系人选择活动,搜索字段应该以编程方式填写。 任何人都可以建议我使用什么URI或什么东西放入意图的额外?

    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);
    }
    
  2. 任何人都可以建议我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

似乎无法以编程方式指定过滤器。

ACTION_PICKContacts.CONTENT_URI你只能使用其中一个 Phone.CONTENT_URIStructuredPostal.CONTENT_URIEmail.CONTENT_URIsetTimeout。这是间接过滤器(所有联系人,所有联系人都有电话号码,都有邮政地址,或全部都有电子邮件),但仅限于此。