Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 在单个查询中获取联系人的详细信息大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
大家好我正在尝试使用COntentResolver从联系人数据库获取联系信息,这些字段想要获取名称,编号,FORMATTED_ADDRESS,PHOTO
单个查询中联系人的详细信息.

所以基本上我需要为每个联系人提供3个查询获取这些查询
细节.

我想知道的是,是否有更简单,更有效的方法
实现这一点.

但使用下面的代码我得到例外.

java.lang.IllegalArgumentexception: Invalid column data1

任何人都可以帮我找到同样的解决方案.

Uri uri                = ContactsContract.Contacts.CONTENT_URI;
String[] projection    = new String[] { ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.numbER,ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS,ContactsContract.CommonDataKinds.Photo.PHOTO};
String selection       = ContactsContract.Contacts.HAS_PHONE_numbER + " = '1'";
String[] SELEctionArgs = null;
String sortOrder       = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

cursor contacts          = getContentResolver().query(uri,projection,SELEction,SELEctionArgs,sortOrder);

解决方法

也许问题在于选择.用我的方法替换你的方法.

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID,ContactsContract.CommonDataKinds.Photo.PHOTO};
String selection = ContactsContract.Contacts.HAS_PHONE_numbER  + " = ?";
String[] SELEctionArgs = { String.valueOf(1) }; 
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

cursor contacts = getContentResolver().query(uri,sortOrder);

您应该始终使用参数化语句.你的方法很危险.你的URI很糟糕.

大佬总结

以上是大佬教程为你收集整理的android – 在单个查询中获取联系人的详细信息全部内容,希望文章能够帮你解决android – 在单个查询中获取联系人的详细信息所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。