我需要修复我一款老应用程序中的一个错误。其中一个问题是如何选择联系人。以下是我需要的内容:
- 联系人必须来自“正常”的谷歌联系人列表,即不想从Facebook或类似网站获取任何联系人。
- 联系人必须至少有一个电话号码。
- 联系人必须来自旧的
android.provider.Contacts
提供程序。 - 如果我可以使用Intent来获取联系人URI而不必自己创建选择列表等,则这是一个奖励。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
}
这个方法还可以。我仍然看到没有电话号码的联系人,但我可以接受这种情况。更糟糕的是,我在列表中仍然看到Facebook联系人!这似乎与在Froyo API for the deprecated Contacts content provider找到的以下引用相矛盾:
这些API已被ContactsContract取代。新版API允许访问多个帐户并支持类似联系人的聚合。这些API仍然有效,但只会返回创建的第一个Google帐户的数据,这符合原始行为。
这听起来就像我想要的,但遗憾的是,我没有得到。
最后,这是我希望有人能回答的具体问题:
- 使用android.provider.Contacts内容提供程序时,为什么我会看到Facebook联系人?
- 如果这不起作用,我还能以其他方式使用户选择带有电话号码的Google联系人吗?
非常感谢。 Gustav