Android获取通话记录[名称,号码,日期,通话时间,类型]

    /**     * 得到所属'列'后,记住这些值,访问数据库的速度可以提高两倍     */    public static final int CACHED_NAME=16;    public static final int NUMBER=0;    public static final int DATE=6;    public static final int DURATION=7;    public static final int TYPE=22;    public List getCallList(Context context) {        Cursor cursor = context.getContentResolver()                .query(CallLog.Calls.CONTENT_URI, null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER);        if (cursor.getCount() <= 0) {            return null;        }        List list = new ArrayList<>();        while (cursor.moveToNext()) {            CallPO call = new CallPO();            /* Reading Name */            /**int a=cursor.getColumnIndex(CallLog.Calls.CACHED_NAME);*/            String nameTemp = cursor.getString(CACHED_NAME);            if (nameTemp==null||nameTemp.length()==0) {                call.setDisplay_name("未知");            } else {                call.setDisplay_name(nameTemp);            }            /**int b=cursor.getColumnIndex(CallLog.Calls.NUMBER);*/            call.setNumber(cursor.getString(NUMBER));            /* Reading Date */            /**int c=cursor.getColumnIndex(CallLog.Calls.DATE);*/            String date= DateUtil.timedate(cursor.getString(DATE));            call.setDate(date);            /* Reading duration */            /** int d=cursor.getColumnIndex(CallLog.Calls.DURATION);*/            call.setDuration(cursor.getString(DURATION)+"秒");            /* Reading Date */            /**             * 1.已接             * 2.已拨             * 3.未接             */            /**int e=cursor.getColumnIndex(CallLog.Calls.TYPE);*/            int type=cursor.getInt(TYPE);            String result="";            switch (type) {                case CallLog.Calls.INCOMING_TYPE:                    result = "已接";                    break;                case CallLog.Calls.OUTGOING_TYPE:                    result = "已拨";                    break;                case CallLog.Calls.MISSED_TYPE:                    result = "未接";                    break;                default:                    break;            }            call.setType(result);            list.add(call);        }        cursor.close();        return list;    }
public class CallPO {    private String display_name;    private String number;    private String date;    private String duration;    private String type;    public String getDisplay_name() {        return display_name;    }    public void setDisplay_name(String display_name) {        this.display_name = display_name;    }    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number;    }    public String getDate() {        return date;    }    public void setDate(String date) {        this.date = date;    }    public String getDuration() {        return duration;    }    public void setDuration(String duration) {        this.duration = duration;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }}


更多相关文章

  1. 获取手机安装的全部应用的示例教程
  2. struts2中获取request、response,与android客户端进行交互
  3. Android(安卓)10 定位问题,获取NMEA(支持5.0~10.0)
  4. android和j2me之清屏(clearScreen)
  5. Android(安卓)版本兼容 — Android(安卓)6.0 和 7.0后获取Mac地
  6. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  7. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  8. android 获取唯一标识
  9. android拍照与读取相册

随机推荐

  1. Android的View类使用
  2. Android:Google的阳谋和Apache Harmony
  3. 图解 Android Handler 线程消息机制
  4. 【android工程转为lib工程后提示'R.id.xx
  5. Android沉浸式状态栏下,如何代码实现andro
  6. Android开发资料推荐之Google Android开
  7. android悬浮窗的两种实现方案
  8. Android开发之Android体系架构介绍
  9. Android的应用前景
  10. 小编程(三):用户登录注册界面开发及用户信息