【发布时间】:2017-02-24 01:12:27
【问题描述】:
我对应用程序开发非常陌生。我正在尝试读取联系人信息,而无需请求联系人的权限(因此我正在使用意图)。
我在我的主要活动中获得了一个包含以下代码的 URI:
Intent selectContactIntent = new Intent(Intent.ACTION_PICK);
selectContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (selectContactIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(selectContactIntent, REQUEST_CODE_SELECT_CONTACT);
}
else {
showContactRequiredMessage(view);
}
在另一个(子)活动中,我执行以下操作:
contactUri = intent.getParcelableExtra(MainActivity.CONTACT_URI);
String[] projection = new String[] {
ContactsContract.Contacts.Data._ID,
ContactsContract.Contacts.Data.MIMETYPE,
ContactsContract.Contacts.Data.DATA1,
ContactsContract.Contacts.Data.DATA2,
ContactsContract.Contacts.Data.DATA3,
ContactsContract.Contacts.Data.DATA4,
ContactsContract.Contacts.Data.DATA5,
ContactsContract.Contacts.Data.DATA6,
ContactsContract.Contacts.Data.DATA7,
ContactsContract.Contacts.Data.DATA8,
ContactsContract.Contacts.Data.DATA9,
ContactsContract.Contacts.Data.DATA10,
ContactsContract.Contacts.Data.DATA11,
ContactsContract.Contacts.Data.DATA12,
ContactsContract.Contacts.Data.DATA13,
ContactsContract.Contacts.Data.DATA14,
ContactsContract.Contacts.Data.DATA15
};
Cursor contactResults = getContentResolver().query(contactUri, projection, null, null, null);
最后一行抛出异常java.lang.IllegalArgumentException: Invalid column <any column after _ID>
我的应用实际上不需要所有数据,我只是想看看可用的数据,我很可能需要名字、姓氏、电话和电子邮件。
【问题讨论】:
-
在那个问题中接受的答案实际上是让我达到现在这一点的原因。如果我尝试使用那里找到的代码 sn-p 结果是一样的,就会抛出异常。
标签: android android-permissions android-contacts