基本上事情更像是黑白,在一部手机上(Galaxy S)工作正常而在另一部手机上(Nexus one,我的客户当然)它没有。
首先,我显示一个包含电话号码的联系人列表。用户选择备份联系人,我尝试加载所有联系信息以将其存储在本地数据库中
cursor = contentResolver.query(ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id), null, null, null, null);
if (cursor != null && cursor.getCount() >0)
{
cursor.moveToFirst();
id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//get all the things I need like phones, picture, etc
}
使用此ID我尝试获取联系人的组ID
cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
null,
ContactsContract.Data.RAW_CONTACT_ID
+ "="
+ id
+ " AND "
+ ContactsContract.Data.MIMETYPE
+ "='"
+ ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
+ "'",
null,
null);
if (cursor != null && cursor.getCount() >0)
{
cursor.moveToFirst();
groupId= cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DATA1));
cursor.close();
}
好吧,通过添加新联系人进行测试,在我的手机上我得到groupId = 1,这意味着系统:我的联系人。在Nexus One上,我为组ID获取null。当然,在我的手机上恢复工作正常,而在另一部手机上,联系人不可见,因为它不属于任何可见的群组......
有什么想法吗?
答案 0 :(得分:0)