Cursor mCallLogCursor = getContentResolver().query(
CallLog.Calls.CONTENT_URI,
new String[]{"max(date) as max_date",
CallLog.Calls.NUMBER,
CallLog.Calls.DURATION,
CallLog.Calls.TYPE},
"1=1) group by(number",
null,
CallLog.Calls.DEFAULT_SORT_ORDER);
上面的语句还原成SQL语句,如下句所示。
SELECT max(date) as max_date, number, duration,type FROM calls WHERE (1=1) group by(number) ORDER BY date DESC
实现了通话记录的去重和查询的功能(去重是把时间靠前的通话记录去掉)
个人理解SQL语句执行,是SELECT 数据 从 表的grop里选出max的数据。
分享到:
相关推荐
### Android手机通讯录导入iPhone教程:详尽指南 在当今多设备共存的时代,从一款智能手机切换到另一款,尤其是在不同操作系统之间切换时,数据迁移成为了一项必要但有时令人头疼的任务。尤其对于通讯录这样的核心...
android content provider两个程序共享数据实例demo。简单的两个应用app之间共享数据。 getContentResolver().insert() getContentResolver().query() getContentResolver().delete() getContentResolver().update()
Android 调用系统相机拍摄获取照片的两种方法实现实例 在我们Android开发中经常需要做这个一个功能,调用系统相机拍照,然后获取拍摄的照片。下面是我总结的两种方法获取拍摄之后的照片,一种是通过Bundle来获取压缩...
final Cursor people = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null ); while (people.moveToNext()) { int nameFieldColumnIndex = people....
Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, selection, selectionArgs, null); ``` 4. **解析Cursor结果**: - `Cursor`对象返回查询结果,遍历它来获取每个匹配的...
Cursor cursor = contentResolver.query(callLogUri, projection, null, null, CallLog.Calls.DATE + " DESC"); ``` 这段代码会返回一个Cursor对象,包含了最新的通话记录,按日期降序排列。 3. **解析Cursor...
Cursor cursor = context.getContentResolver().query(uri, new String[]{ImageColumns.DATA}, null, null, null); if (cursor != null) { if (cursor.moveToFirst()) { int index = cursor.getColumnIndex...
final Cursor people = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (people.moveToNext()) { int nameFieldColumnIndex = people....
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); ``` 在遍历cursor时,可以获取每个联系人的名字、电话号码、邮箱等信息,例如: ```java while ...
Cursor cursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); ``` 2. 获取联系人详情,例如姓名: ```java if (cursor.moveToFirst()) { String name ...
Cursor cursor = resolver.query(uri, null, null, null, null); ``` 查询结果会返回一个`Cursor`对象,它包含了所有匹配的媒体记录。你可以遍历`Cursor`来获取每一条记录: ```java if (cursor != null && cursor...
2. **执行查询**:调用`getContentResolver().query()`方法,传入`contentUri`以及定义好的列名。 3. **获取路径**:通过遍历查询结果,获取到图像文件的路径。 #### 六、示例代码分析 现在让我们结合提供的代码...
Cursor cursor = this.getContext().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); ``` 在上面的代码中,我们使用 ContentResolver 的 query 方法来查询 ...
Cursor cursor = getContentResolver().query(smsUri, null, null, null, null); while (cursor.moveToNext()) { String address = cursor.getString(cursor.getColumnIndexOrThrow("address")); String body = ...
Cursor cursor = getContentResolver().query(Uri.parse(uri), null, null, null, null); return cursor; } }, new ResultBackListener() { /** * 在主线程中获取查询结果 */ @Override ...
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); ``` 通过ContentResolver查询`ContactsContract.Contacts`表,获取所有联系人的基本信息。 #### 1.2 获取联系人姓名 ```java...
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex...
Cursor cr = getContentResolver().query(uri, null, null, null, null); while (cr != null && cr.moveToNext()) { // APN id String id = cr.getString(cr.getColumnIndex("_id")); // APN name String apn =...
Cursor cursor = getContentResolver().query(uri, null, "english=?", new String[] { actvWord.getText().toString() }, null); String result = "未找到该单词."; if (cursor.getCount() > 0)...
通过查询语句:Cursor cursor = mContext.getContentResolver().query(Uri.parse("content://sms"), null, "type = 1 and read = 0", null, null);打印可以看到数据库中所有的列字段