Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android API 8,10 ContactsContract.Data.HAS_PHONE_NUMBER没有这样的列大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下查询在我的设备上运行正常(API 15).它在运行API 8或API 10的模拟器中不起作用.

这是查询

cursor contactsCur = getContentResolver().query(
  ContactsContract.Data.CONTENT_URI,new String[] { ContactsContract.Data._ID,ContactsContract.Data.CONTACT_ID,ContactsContract.Data.DISPLAY_NAME,ContactsContract.CommonDataKinds.Organization.COMPANY,ContactsContract.CommonDataKinds.Phone.TYPE,ContactsContract.Data.LOOKUP_KEY,ContactsContract.CommonDataKinds.Phone.numbER,Contacts.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CITY,ContactsContract.CommonDataKinds.StructuredPostal.STREET,ContactsContract.CommonDataKinds.StructuredPostal.REGION,ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE},ContactsContract.Data.HAS_PHONE_numbER + " >? ",new String[] { "0" },ContactsContract.Data.DISPLAY_NAME + " COLLATE NOCASE ASC");

以下是它抛出的异常:
android.database.sqlite.sqliteException:没有这样的列:has_phone_number :,编译时:SELECT _id,contact_id,display_name,data1,data2,lookup,mimetype,data7,data4,data8,data9 FROM view_data_reStricted data WHERE(1 )AND(has_phone_number>?)ORDER BY display_name COLLATE NOCASE ASC

奇怪的是,以下代码也不起作用:

cursor contactsCur = getContentResolver().query(
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI,new String[] { ContactsContract.CommonDataKinds.Phone.HAS_PHONE_numbER},ContactsContract.CommonDataKinds.Phone.HAS_PHONE_numbER + " >? ",null);

它产生:java.lang.IllegalArgumentexception:无效的列has_phone_number

http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone.html声明ContactsContract.CommonDataKinds.Phone可以访问HAS_PHONE_numbER来自界面android.provider.ContactsContract.ContactsColumns

为了增加陌生感,此查询有效:

cursor contactsCur = getContentResolver().query(
    ContactsContract.Data.CONTENT_URI,new String[] { ContactsContract.Data.LOOKUP_KEY},null,null);

但是这个没有:

cursor contactsCur = getContentResolver().query(
    ContactsContract.Data.CONTENT_URI,new String[] { ContactsContract.Data.HAS_PHONE_numbER},null);

ContactsContract.Data.LOOKUP_KEY来自与ContactsContract.Data.HAS_PHONE_numbER相同的隐式连接!

我哪里错了?

解决方法

您遇到的主要问题是ContactsContract.CommonDataKinds.Phone.CONTENT_URI会自动过滤has_phone_number = 1.因此,您可以保证Phone.CONTENT_URI的所有内容都有电话号码.然后,您可以通过检查Phone.TYPE是Phone.TYPE_MOBILE还是Phone.TYPE_WORK_MOBILE(例如)中的一个来进一步过滤掉它,如果您想限制它具有的电话号码类型.

供参(请注意,数据/电话URI中不存在has_phone_number):

columns for content://com.android.contacts/contacts:
- times_contacted
- contact_status
- custom_ringtone
- has_phone_number
- phonetic_name
- phonetic_name_style
- contact_status_label
- lookup
- contact_status_icon
- last_time_contacted
- display_name
- sort_key_alt
- in_visible_group
- _id
- starred
- sort_key
- display_name_alt
- contact_presence
- display_name_source
- contact_status_res_package
- contact_status_ts
- photo_id
- send_to_voicemail

和:

columns for content://com.android.contacts/data/phones:
- data_version
- phonetic_name
- phonetic_name_style
- contact_id
- lookup
- data12
- data11
- data10
- mimetype
- data15
- data14
- data13
- display_name_source
- data_sync1
- data_sync3
- data_sync2
- data_sync4
- acCount_Type
- custom_ringtone
- status
- data1
- data4
- data5
- data2
- data3
- data8
- data9
- group_sourcEID
- data6
- account_name
- data7
- display_name
- in_visible_group
- display_name_alt
- contact_status_res_package
- is_priMary
- contact_status_ts
- raw_contact_id
- times_contacted
- contact_status
- status_res_package
- status_icon
- contact_status_icon
- mode
- version
- last_time_contacted
- res_package
- _id
- name_verified
- status_ts
- dirty
- is_super_priMary
- photo_id
- send_to_voicemail
- name_raw_contact_id
- contact_status_label
- status_label
- sort_key_alt
- starred
- sort_key
- contact_presence
- sourcEID

大佬总结

以上是大佬教程为你收集整理的Android API 8,10 ContactsContract.Data.HAS_PHONE_NUMBER没有这样的列全部内容,希望文章能够帮你解决Android API 8,10 ContactsContract.Data.HAS_PHONE_NUMBER没有这样的列所遇到的程序开发问题。

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

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