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. Android调用系统短信发送界面并预设接收号码、短信内容
  2. android 拨打紧急号码,通话时开启免提功能实现
  3. Android SDK 1.0 电话号码的例子(Demo)
  4. 怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格
  5. Android之实现手机号码拦截
  6. android查询软件(身份证号,号码归属等)源代码
  7. [Android] Android下实现电话号码归属地的查询
  8. Android中如何取得联系人,如何得到一个联系人下面的多个号码
  9. android 取手机号码

随机推荐

  1. mk中的 android:sharedUserId和LOCAL_CER
  2. android Activity 四大启动模式探究
  3. java CA证书相关操作,Android,java
  4. E/错误(3907): android.view.ViewRootImp
  5. Android(安卓)MediaPlayer使用方法简单介
  6. Android(安卓)自定义像素AVD模拟器无键盘
  7. android 代码控制LinearLayout 宽度高度
  8. android 在Resources 中定义arrays
  9. Android 之 Notification
  10. Android(安卓)WebView 加载富文本内容