如何以编程方式打开联系人选择以编程方式输入的搜索筛选器


  1. 我想从我的应用程序中打开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_URIPhone.CONTENT_URIStructuredPostal.CONTENT_URIEmail.CONTENT_URI。这是一个间接的过滤器(所有联系人、所有电话号码、所有邮政地址或所有电子邮件),但仅限于此。

相关内容

  • 没有找到相关文章

最新更新