如何获取联系人的组ID号(Android)

时间:2013-02-14 22:40:37

标签: java android sql call contacts

如何让群组ID知道联系人的号码

我想它必须是这个内部的另一个查询,但我不知道该怎么做

我在这里尝试过:

String[] projection = new String[]{ ContactsContract.Groups._ID };

Cursor cursor = getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        projection,
        ContactsContract.CommonDataKinds.Phone.NUMBER +" = "+ number,
        null,
        null);

cursor.moveToNext();
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Groups._ID));

(查询不返回任何内容)

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您的查询不返回任何内容,因为数据集Groups._ID中没有此类列CommonDataKinds.Phone

尝试这样的事情:

String sPhoneNumber = "+48123456789";    
Cursor cursor = getApplicationContext().getContentResolver().query(
                Data.CONTENT_URI, new String[] {CommonDataKinds.GroupMembership._ID}, 
                ContactsContract.CommonDataKinds.Phone.NUMBER+"='"+sPhoneNumber+"'", null, null);

其中sPhoneNumber是具有所需电话号码的字符串。请记住,您的光标可能仍会返回0,具体取决于:

  1. 您的电话号码的格式,即您希望找到组ID 数字格式化时,给定号码+49123456789的联系人 像这样+49 123 456 789。空白正在完全实现这一点 不同的String
  2. 您的联系人不属于任何群组。
  3. 此外,光标仍然可以返回更多结果,主要是在您的联系人属于多个组的情况下。