我希望用户选择我的应用程序将向其发送短信的联系人。如何确保在使用ACTION_PICK意图启动活动时,仅显示具有移动电话号码的联系人?
目前,我正在开展这样的活动:
Intent intent = new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI);
答案 0 :(得分:4)
您可以使用:
intent.setType(android.provider.ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
然而,当使用时,联系人选择器将显示所有电话号码的列表,每个电话号码的联系人名称都在上面,因此,如果联系人有多个号码,您将看到该联系人的多个条目
答案 1 :(得分:1)
我怀疑这是不可能的。您需要一个单独的Uri,Phones内容提供商用它来限制输出到手机。我没有看到这样的Uri存在。
您仍然可以让活动选择仅包含电话号码的用户,但您必须使用managedQuery()
自行编写活动。
答案 2 :(得分:0)
阅读代码,看起来您可以在意图中指定UI.LIST_CONTACTS_WITH_PHONES_ACTION操作,仅显示具有电话号码的联系人。我没有试过这个。此外,此操作与联系人设置“仅与电话联系”
具有相同的效果