public static final Uri CALL_LOG_CONTENT_URI = CallLog.Calls.CONTENT_URI;//通话记录Uriprivate static final int QUERY_TOKEN = 304;public static final String[] SUMMARY_PROJECTION = new String[]{CallLog.Calls._ID,                 //IDCallLog.Calls.CACHED_NAME,         //姓名CallLog.Calls.CACHED_NUMBER_LABEL, //缓存电话标签CallLog.Calls.CACHED_NUMBER_TYPE,  //缓存电话类型(家庭电话,工作电话等)CallLog.Calls.NUMBER,           //电话号码CallLog.Calls.TYPE,             //通话类型(来电,去电,未接)CallLog.Calls.DURATION,         //通话时长CallLog.Calls.DATE,             //通话日期};

源码下载http://download.csdn.net/detail/wds1181977/7621419




2调用AsyncQueryHandler

private final class QueryContactsHandler extends AsyncQueryHandler {public QueryContactsHandler(Context context) {super(context.getContentResolver());}@Overrideprotected void onQueryComplete(int token, Object cookie, Cursor cursor) {if (cursor == null || cursor.isClosed() || !cursor.moveToFirst()) {mStopLoadHandler.sendEmptyMessage(QUERY_NO_CONTACTS);return;}if (!getActivity().isFinishing()) {if(cursor.getCount() > 0) {        mStopLoadHandler.sendEmptyMessage(QUERY_COMPLETE);        } else {        mStopLoadHandler.sendEmptyMessage(QUERY_NO_CONTACTS);        }if(mDateTimeMap != null){mDateTimeMap.clear();mDateTimeMap = null;}mDateTimeMap = new HashMap<Long, Boolean>();long currentDate = 0;while(!cursor.isAfterLast()){long _id = cursor.getLong(CallLogUtils.ID_INDEX);long date = cursor.getLong(CallLogUtils.DATE_INDEX);date = DateTimeUtils.getStartTimeOfDay(date);if(date != currentDate){mDateTimeMap.put(_id, true);currentDate = date;} else {mDateTimeMap.put(_id, false);}cursor.moveToNext();}mContactsAdapter.changeCursor(cursor);} else {if (cursor != null && !cursor.isClosed()) {cursor.close();}}}}








3开始查询

private void startEmptyQuery(){if (mQueryContactsHandler == null) {if(LogLevel.DEV){DevLog.e(TAG, "startEmptyQuery() failed, mQueryContactsHandler is null.");}return;}mQueryContactsHandler.cancelOperation(QUERY_TOKEN);Uri uri = CallLogUtils.CALL_LOG_CONTENT_URI;mQueryContactsHandler.startQuery(QUERY_TOKEN, null, uri, CallLogUtils.SUMMARY_PROJECTION, null, null, CallLogUtils.DEFAULT_SORT_ORDER);}

@Overridepublic void onResume(){if(LogLevel.MARKET){MarketLog.i(TAG, "onResume...");}super.onResume();startEmptyQuery();}






4读取Cursor Java Bean CallLogInfo


public static final int ID_INDEX = 0;public static final int CACHED_NAME_INDEX = 1;public static final int CACHED_NUMBER_LABEL_INDEX = 2;public static final int CACHED_NUMBER_TYPE_INDEX = 3;public static final int NUMBER_INDEX = 4;public static final int TYPE_INDEX = 5;public static final int DURATION_INDEX = 6;public static final int DATE_INDEX = 7;


public static CallLogInfo readCallLogInfoByCursor(Cursor cursor){if(cursor == null || cursor.isClosed()){return null;}try {CallLogInfo info = new CallLogInfo();info._id = cursor.getLong(ID_INDEX);info.name = cursor.getString(CACHED_NAME_INDEX);info.number_label = cursor.getString(CACHED_NUMBER_LABEL_INDEX);info.number_type = cursor.getString(CACHED_NUMBER_TYPE_INDEX);info.number = cursor.getString(NUMBER_INDEX);info.type = cursor.getInt(TYPE_INDEX);info.duration = cursor.getLong(DURATION_INDEX);info.date = cursor.getLong(DATE_INDEX);return info;} catch (Exception e){e.printStackTrace();return null;}}

电话记录类型

     public static final String TYPE = "type";        /** Call log type for incoming calls. */        public static final int INCOMING_TYPE = 1;//来电记录        /** Call log type for outgoing calls. */        public static final int OUTGOING_TYPE = 2;//去电记录        /** Call log type for missed calls. */        public static final int MISSED_TYPE = 3;//未接记录        /**         * Call log type for voicemails.         * @hide         */        public static final int VOICEMAIL_TYPE = 4;//语言信箱

默认排序

public static final String DEFAULT_SORT_ORDER = CallLog.Calls.DEFAULT_SORT_ORDER;




更多相关文章

  1. Android(安卓)apk反编译记录
  2. Android系统打电话实例
  3. Android本地实现搜索历史记录
  4. Android进程保活学习记录
  5. Android-Async-Http使用记录
  6. 天天记录 - Android(安卓)ListView加载图片
  7. Android(安卓)GreenDao3.2.2简单使用
  8. 记录 Android(安卓)WebView 开发过程的坑和解决方法
  9. [记录]Navigation无title注意事项

随机推荐

  1. Android上传文件,客户端+服务器源码
  2. Amazon Kindle Fire 狂銷! 不到三個月就
  3. Android Studio 3.6.3 中遇到无法创建Fil
  4. android中真正destroy掉activity的方法
  5. android不能显示log的问题
  6. android拨打电话
  7. Android ADT 插件安装
  8. Android 格式化日期
  9. Android的信号格数显示优化
  10. Android监听消息通知栏点击事件