Date.prototype.Format = function (fmt) {

var o = {

"M+": this.getMonth() + 1, //月份

"d+": this.getDate(), //日

"h+": this.getHours()%12==0?12:this.getHours()%12, //小时

"H+": this.getHours(),

"m+": this.getMinutes(), //分

"s+": this.getSeconds(), //秒

"q+": Math.floor((this.getMonth() + 3) / 3), //季度

"f": this.getMilliseconds() //毫秒

};

if (/(y+)/.test(fmt))

fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

for (var k in o)

if (new RegExp("(" + k + ")").test(fmt))

fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

return fmt;

}

function getCallLog() {

var content="";

try{

document.getElementById("output").innerHTML="";

var CallLog = plus.android.importClass("android.provider.CallLog");

var main = plus.android.runtimeMainActivity();

var obj = main.getContentResolver();

plus.android.importClass(obj);

//查询

var cursor = obj.query(CallLog.Calls.CONTENT_URI, null, null, null, null);

// var SimpleDateFormat = plus.android.importClass("java.text.SimpleDateFormat");

// var Date = plus.android.importClass("java.util.Date");

// var Long = plus.android.importClass("java.util.Long");

plus.android.importClass(cursor);

var count = 0;

var arr=[];

if (cursor.moveToFirst()) {

while (cursor.moveToNext()) {

count++;

//号码

var number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));

//呼叫类型

var type;

switch (parseInt(cursor.getString(cursor.getColumnIndex(CallLog.Calls.TYPE)))) {

case CallLog.Calls.INCOMING_TYPE:

type = "呼入";

break;

case CallLog.Calls.OUTGOING_TYPE:

type = "呼出";

break;

case CallLog.Calls.MISSED_TYPE:

type = "未接";

break;

default:

type = "挂断"; //应该是挂断.根据我手机类型判断出的

break;

}

// var sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

var date = new Date(parseInt(cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))));

//var time = sfd.format(date);//格式化的效果:例如2010-01-08 09:10:11

var time=date.Format("yyyy-MM-dd HH:mm:ss:f");

// var sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

// var Date_Col = cursor.getColumnIndex(CallLog.Calls.DATE);

// var Date_Value = cursor.getString(Date_Col);

// console.log(Date_Value);

// var t = parseInt(Date_Value);

// console.log(t);

//呼叫时间

// var time = sfd.format(new Date(t));

// var time=new Date(t);

// var time=cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE));

//联系人

var Name_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME);

var name = cursor.getString(Name_Col);

//通话时间,单位:s

var Duration_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.DURATION);

var duration = cursor.getString(Duration_Col);

var obj={};

obj.num=count;

obj.name=name;

obj.phone=number;

obj.time=time;

obj.type=type;

obj.duration=duration>3600?new Date(duration*1000).Format("HH:mm:ss"):new Date(duration*1000).Format("mm:ss");

arr.push(obj);

outLine(JSON.stringify(obj));

// console.log(JSON.stringify(obj));

console.log(time + " " + " name:"+name+" phone:"+number + “ type:"+type + " duration:" + duration);

content+=str;

if (count > 50) {

break;

}

}

}

// console.log(JSON.stringify(arr));

// console.log(arr.length);

// content="";

// for(var i=0;i // content+=JSON.stringify(arr[i]);

// content+="\n";

// }

}

catch(e){

content=e.message;

}

outLine(content);

}

原文:http://www.cnblogs.com/liadmin/p/6352122.html

android p获取通话记录_HBuilder 获取通话记录 (Android)相关推荐

  1. android通话记录列表apk,android打电话,发短信,获取通讯录、通话记录、短信记录...

    [实例简介] 代码实现android打电话,发短信,获取通讯录.通话记录.短信记录 [实例截图] [核心代码] 19287b5f-b70c-4210-ab04-9d24ddd60788 └── cal ...

  2. Android通过蓝牙获取设备的通讯录、通话记录等

    本功能实现方案流程如下: 1.在AndroidManifest文件中添加蓝牙相关权限: 2.通过静态或者动态注册广播的形式,监听蓝牙设备的状态(本文以动态监听的方式实现): 3.根据已实现广播的回调状 ...

  3. android如何使用BroadcastReceiver后台实现来电通话记录的监听并存取到sqllite数据库通过Contentprovilder实现接口...

    BroadcastReceiver 是android四大组件的一个,本质上是一种全局的监听器,用于监听全局的广播消息.下面实现了后台监听android手机通话记录.本demo分两个程序,第一个程序是设 ...

  4. android隐私违规获取问题处理 及 Hook拦截处理记录 (VirtualXposted/epic等)及 android/iOS 多bundle加载方式修复方案

    文章目录 1.如何检测/复现 android_id/Mac地址等权限被超前获取 ```但是,检测机构是如何检测我们的APP?``` 关于hooklogin插件 太极 ---- 以上基础工作完成---- ...

  5. Androidの通过查询电话号码或ID获取联系人头像

    Androidの通过查询电话号码或ID获取联系人头像 1.通过联系人手机号码查询获取头像 // 取得Intent中的頭像 ivShowImage = (ImageView) findViewById( ...

  6. android拨打电话的日志,Android-9种通话状态(精确)

    一.介绍 在应用层监听通话状态只有三种,从TelephonyManager.java中注释可知这三种状态含义如下: CALL_STATE_IDLE 空闲态(没有通话活动) CALL_STATE_RIN ...

  7. Android权限说明大全及动态获取权限框架——Easypermissions

    Android6.0把权限分成正常权限和危险权限,AndroidManifest中声明的正常权限系统会自动授予,而危险权限则需要在使用的时候用户明确授予. 换句话说,就是Android6.0以上的系统 ...

  8. android获取当前位置经纬度,Android中通过GPS或NetWork获取当前位置的经纬度

    今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能.要实现该功能要用到Android Framework 中的 LocationManager 类.下面我 ...

  9. <漫漫Android路>AOSP源码获取编译及问题处理

    漫漫Android路---1.AOSP源码获取编译及导入 写在前面 环境准备 AOSP源码获取 1.Repo下载配置 2.Git安装及配置 3.AOSP获取 AOSP源码编译 1.安装编译依赖 2.开 ...

最新文章

  1. 《Framework Design Guidelines 2nd Edition》推荐
  2. matlab int8 矩阵,unit8_matlab数据类型转换——int8转换成unit8
  3. 软件定义的网络体系结构是否使用网段路由?—Vecloud微云
  4. RTSP/RTMP播放端录像不可忽视的几个设计要点
  5. 让你的Mac读给你听,还能听写,用来练习英语口语!
  6. cmake命令的python库的位置参数-DTORCH_PATH
  7. Matlab使用过程中内存不足问题的总结(修改)
  8. linux下安装anconda
  9. python参考手册第四版_Python参考手册 PDF 第4版
  10. 最强内网穿透工具frp
  11. fastadmin常规错误排查
  12. html学习——介绍
  13. 峰值利用率80%+,视频云离线转码自研上云TKE实践
  14. MySQL学习笔记10:MySQL图形化管理工具 navicat 和 Workbench
  15. 基于 Selenium 掘金自动签到、抽奖的定时任务
  16. Windows .bat 脚本简单用法介绍
  17. 使用Cython提高python代码执行速度
  18. html中设置字体字型,html中 如何在font中设置字体样式(粗体斜体等)
  19. 「UG/NX」Block UI RGB 颜色拾取器RGBColorPicker
  20. 最基础的远程控制来了,教你如何跨客户端连接服务器,7*24工作不是梦!

热门文章

  1. 桌面显示菜单图标下面的字搞起阴影了,怎么弄掉?
  2. nodejs之http-proxy几点常见问题
  3. SoapUI实践:自动化测试、压力测试、持续集成 1
  4. 物联网正在给批发业带来新的商业模式
  5. spring mvc中的@propertysource
  6. Linux系统Git环境配置
  7. javascript工具类(util)-持续更新
  8. 架构设计之设计模式 (二) 静态代理和动态代理--间接“美”
  9. 面对 iPad,Surface 的键盘是必杀技
  10. postgresql的安装与配置