从电话获取一些联系信息数据

我需要获取Android设备联系人的ID,名字,姓氏,号码(或数字),电子邮件,网站的列表。我知道通过获取ID可以查询电话号码,这不是什么大问题。但是我不知道如何查询才能正确获取所有这些列。


我应该为我的名字需要ContactsContract.CommonDataKinds.StructuredName电子邮件我需要ContactsContract.CommonDataKinds.Email.ADDRESS,id的联系方式和网站ContactsContract.CommonDataKinds.Website.URL。


我的代码返回了奇怪的值,例如GIVEN_NAME的单位数字,FAMILY_NAME的null,Email.ADDRESS的联系电话之一。


但是我认为问题是查询URI,我应该使用哪一个?


ContentResolver cr = getActivity().getContentResolver();


String[] projection = new String[] {

                    Contacts._ID,

                  ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,

  ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,

                    ContactsContract.CommonDataKinds.Website.URL,

                    ContactsContract.CommonDataKinds.Email.ADDRESS};


Cursor nameCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

                    projection,

                    null,

                    null,

                    null);

while (nameCur.moveToNext()) {

   String given = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME));

   String family = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME));

   String email = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));

   Integer id= nameCur.getInt(nameCur.getColumnIndex(Contacts._ID));

   String website = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.Website.URL));

//do some work with strings...                

}


holdtom
浏览 257回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java