我正在Android中创建一个消息传递应用程序,我想只从唯一的联系人号码中获取短信。
我尝试了以下代码,但它无效。
String[] projection = new String[] { "_id","DISTINCT "+ContactsContract.PhoneLookup.NUMBER, "person", "body", "date", "type" };
Cursor cursor = getContentResolver().query(uri, projection,null, null, null);
这里抛出错误。
Caused by: android.database.sqlite.SQLiteException: near "DISTINCT": syntax error: , while compiling: SELECT _id, DISTINCT number, person, body, date, type FROM sms ORDER BY date DESC
有人可以为我解决这个问题。
答案 0 :(得分:0)
您需要更改查询。 DISTINCT关键字仅适用于所有行。您需要的是查询中的“分组依据”部分。
您可以将查询更改为:
String[] projection = new String[] { "_id", ContactsContract.PhoneLookup.NUMBER, "person", "body", "date", "type" };
String selection = GROUP BY " + ContactsContract.PhoneLookup.NUMBER;
Cursor cursor = getContentResolver().query(uri, projection, selection, null, null);
我还没有测试过,所以可能会出现语法错误。