【Android通话记录】仿小米通话

来源:互联网 发布:保险网络与电话营销 编辑:程序博客网 时间:2024/05/16 08:38

接上一篇:http://blog.csdn.net/xinwenhehe/article/details/52163963

首先读取通话记录权限:

<uses-permission android:name="android.permission.READ_CALL_LOG"/>

和上一篇一样,先判断权限是否获取,然后再进行相关操作。
主要代码:

private void initRecord() {        Uri uri = CallLog.Calls.CONTENT_URI;        if (ActivityCompat.checkSelfPermission(getActivity(),                Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(getActivity(),                    new String[]{Manifest.permission.READ_CALL_LOG}, READ_CONTACTS_PERMISSIONS_REQUEST);            return;        }        Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null, null);        if (cursor.moveToFirst()) {            do {                RecordEntity recordEntity = new RecordEntity();                //号码                recordEntity.setNumber(cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER)));                //呼叫类型                recordEntity.setType(Integer.parseInt(cursor.getString(cursor.getColumnIndex(CallLog.Calls.TYPE))));                SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                Date date = new Date(Long.parseLong(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))));                //呼叫时间                recordEntity.setlDate(sfd.format(date));                //联系人                recordEntity.setName(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME)));                Log.e("---------->", cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME))+"");                //通话时间,单位:s                recordEntity.setDuration(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DURATION)));                recordEntityList.add(recordEntity);            } while (cursor.moveToNext());        }        getActivity().startManagingCursor(cursor);//cursor的生命周期托管给activity        //设置列表数据和浮动header        final LinearLayoutManager layoutManager = new                LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);        recyclerView.setLayoutManager(layoutManager);        RecordAdapter recordAdapter = new RecordAdapter();        recyclerView.setAdapter(recordAdapter);        // Add decoration for dividers between list items        recyclerView.addItemDecoration(new DividerDecoration(getActivity()));    }

程序apk地址:http://www.pgyer.com/MiContacts

程序源代码:https://github.com/NewsChen/MiContacts

0 0