【问题标题】:How to get Group ID of contacts Number (Android)如何获取联系人号码的组 ID (Android)
【发布时间】:2013-02-14 22:40:37
【问题描述】:

如何知道联系人号码获取组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));

(查询不返回任何内容)

感谢您的帮助!

【问题讨论】:

    标签: java android sql call contacts


    【解决方案1】:

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

    试试这样的:

    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. 您的联系人不属于任何组。

    而且 cursor 仍然可以返回更多结果,主要是在您的联系人属于多个组的情况下。

    【讨论】:

    • Lonti84,感谢您的回复!我已经解决了这个问题..也许不是那么优雅。我现在不能测试你的答案,因为我有很多事情要做,但我会尽快测试它。 TNX!
    • @Inoy 今天我正在处理类似的问题(根据联系人姓名检索组 ID),我注意到它不像我在这里发布的那么简单。我的工作解决方案基于此article
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多