[整理] 操作通话记录(一)

 

/*

*为了方便后面页面的封装,这里定义了一个实体类

*/

public class Call {

    private Bitmap img;

    private String telName;

    private String telNo;

    private String telDate;

    private String telTime;

    private String simpleTime;

    private int type;

    private String longTime;

 

getset......

}

 

/*

*获取所有的通话记录

*/

public List<Call> getCallList() {

        List<Call> list = new ArrayList<Call>();

        int type;

        Date date; //日期

        String time = "";//通话时间

        String telName = "";//姓名

        String telNo = "";//电话号码

 

        ContentResolver cr = getContentResolver();

        final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new String[] {

                CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,

                CallLog.Calls.TYPE, CallLog.Calls.DATE,CallLog.Calls.DURATION }, null, null,

                CallLog.Calls.DEFAULT_SORT_ORDER);

        for (int i = 0; i < cursor.getCount(); i++) {

            Call call = new Call();

            cursor.moveToPosition(i);

            telName = cursor.getString(1);

            telNo = cursor.getString(0);

            type = cursor.getInt(2);

            SimpleDateFormat sfd = new SimpleDateFormat("HH:mm:ss");

            SimpleDateFormat sfd2 = new SimpleDateFormat("yyyy-MM-dd");

            date = new Date(Long.parseLong(cursor.getString(3)));

            time = sfd.format(date);

            call.setLongTime(formatDuring(Long.valueOf(cursor.getString(4)));

           

            String callDate = getdays(Long.parseLong(cursor.getString(3)));

            String x = getContactIDFromPhoneNum(telNo);

            byte[] kk = getPhoto(x);//联系人头像

            if (kk != null) {

                img = BitmapFactory.decodeByteArray(kk, 0, kk.length);

                call.setImg(img);

            }

            Manager.addList(img, telName, telNo, callDate, time,

                    sfd2.format(date), type);

            call.setTelName(telName);

            call.setTelNo(telNo);

            call.setType(type);

            call.setTelDate(callDate);

            call.setTelTime(time);

            if (CallLog.Calls.INCOMING_TYPE == type) {//已接来电

                call.setType(0);

            } else if (CallLog.Calls.OUTGOING_TYPE == type) {//已拨

                call.setType(1);

            } else if (CallLog.Calls.MISSED_TYPE == type) {//未接来电

                call.setType(-1);

            }  

            list.add(call);

        }

return list;

    }

 

/*

*删除记录

*/

    public void deleteLog(String phoneNumber){

           String strUriInbox = "content://call_log/calls";  

           Uri uriCall = Uri.parse(strUriInbox);  

         Cursor c = getContentResolver().query(uriCall,  

                    new String[] { "_id", "number", "date" }, null, null, null); 

            if (c != null && c.moveToFirst()) {  

                    String num = c.getString(1);  

                    String id = c.getString(0);  

                    if (num != null &&phoneNumber!=null&& num.equals(phoneNumber)) {  

                        getContentResolver().delete(uriCall, "_id=" + id, null);  

                    }  

                c.close();   }

}

 

 

 

以下代码源自互联网,由于众多网络转载的原因,未找到原作者,请原作者见谅

 

/*

*获取联系人头像

*/

public byte[] getPhoto(String people_id) {

        Cursor cur1 = null;

        String photo_id = null;

        String[] projection1 = new String[] {

        ContactsContract.Contacts.PHOTO_ID

        };

        if (people_id != null && !"".equals(people_id)) {

            String selection1 = ContactsContract.Contacts._ID + " = "

                    + people_id;

            try {

                cur1 = getContentResolver().query(

                        ContactsContract.Contacts.CONTENT_URI, projection1,

                        selection1, null, null);

            } catch (Exception e) {

            }

            if (cur1.getCount() > 0) {

                cur1.moveToFirst();

                photo_id = cur1.getString(0);

            }

            String[] projection = new String[] {

            ContactsContract.Data.DATA15

            };

            String selection = "ContactsContract.Data._ID = " + photo_id;

            Cursor cur = getContentResolver().query(

                    ContactsContract.Data.CONTENT_URI, projection, selection,

                    null, null);

            cur.moveToFirst();

            if (cur.getCount() < 0 || cur.getCount() == 0) {

                return null;

            }

            byte[] contactIcon = cur.getBlob(0);

            if (contactIcon == null) {

                return null;

            } else {

                return contactIcon;

            }

        } else {

            return null;

        }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值