代码:

    Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + , //月份
"d+": this.getDate(), //日
"h+": this.getHours()%==?:this.getHours()%, //小时
"H+": this.getHours(),
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + ) / ), //季度
"f": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$, (this.getFullYear() + "").substr( - RegExp.$.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$, (RegExp.$.length == ) ? (o[k]) : (("" + 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 = ;
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>?new Date(duration*).Format("HH:mm:ss"):new Date(duration*).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 > ) {
break;
}
} }
// console.log(JSON.stringify(arr));
// console.log(arr.length);
// content="";
// for(var i=0;i<arr.length;i++){
// content+=JSON.stringify(arr[i]);
// content+="\n";
// }
}
catch(e){
content=e.message;
} outLine(content);
}

HBuilder 获取通话记录 (Android)的更多相关文章

  1. android 获取通话记录

    在manifest添加以下权限<uses-permission android:name="android.permission.READ_CALL_LOG" />&l ...

  2. 【Android】Android6.0读取通话记录

    需求:读取通话记录,然后列表显示,每条记录的数据包括姓名.号码.类型(来电.去电.未接,字体颜色分别为绿.蓝.红),然后长按条目弹出一个列表弹窗,显示[复制号码到拨号盘].[发短信].[打电话]. 先 ...

  3. javascript提取联通个人信息和通话记录的代码

    由于一些巨大的困难,一些后端爬虫改成了前端爬虫. 前端爬虫是只有js语言,后端爬虫有python java nodejs php这些语言. 前端爬虫有window.document对象,在浏览器端的爬 ...

  4. Android通讯录管理(获取联系人、通话记录、短信消息)

    前言:前阵子主要是记录了如何对联系人的一些操作,比如搜索,全选.反选和删除等在实际开发中可能需要实现的功能,本篇博客是小巫从一个别人开源的一个项目抽取出来的部分内容,把它给简化出来,可以让需要的朋友清 ...

  5. 建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS)

    建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS) 电话黑客android恶意软件编程黑客入侵linux 随着我们继续我们的系列,AMUNET应用程序变 ...

  6. 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息

    项目的Github地址:https://github.com/ggrcwxh/LastTime 采用基于git的多人协作开发模式 软件采用mvc设计模式,前端这么艺术的事我不太懂,交给斌豪同学去头疼了 ...

  7. Android笔记——对系统通话记录的删除操作

    手机通话记录是保存在数据库中的,位置:  /data/data/com.android.providers.contacts/databases/calllog.db ,表名:calls 这张表中有个 ...

  8. 越狱的 ios 如何 获取 读取 提取 手机上的 短信 通话记录 联系人 等信息

    http://willson.sinaapp.com/2011/12/iphone 获取短信脚本.html  Iphone获取短信脚本http://bbs.9ria.com/thread-209349 ...

  9. 内容观察者 ContentObserver 监听短信、通话记录数据库 挂断来电

    Activity public class MainActivity extends ListActivity {     private TextView tv_info;     private  ...

随机推荐

  1. Git介绍和基本原理

    官方文档:http://git-scm.com/doc 1.1 起步 - 关于版本控制 本章关于开始学习 Git. 我们从介绍有关版本控制工具的一些背景知识开始,然后讲解如何在你的系统运行 Git,最 ...

  2. LeetCode——Reverse Linked List

    反转链表,用了一个比较笨的方法. public class Solution { public ListNode reverseList(ListNode head) { if(head == nul ...

  3. 经验之道:最有效的iOS内存泄漏检测

    版权声明:本文由胡涛原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/125 来源:腾云阁 https://www.qclou ...

  4. Hibernate插入、查询、删除操作 HQL

    Hibernate的所有的操作都是通过Session完成的. 基本步骤如下: 1:通过配置文件得到SessionFactory: SessionFactory sessionFactory=new C ...

  5. 手动把第三方的jar包添加到本地mavne仓库的方法

    在实际实用maven进行开发的过程中,有一些项目没有使用maven来进行打包(比如我在做中文分词时候用的IK分词器),我们就无法在maven的仓库中下载这些jar包,但是我们在开发中会用到这些东西,所 ...

  6. 【BZOJ4429】[Nwerc2015] Elementary Math小学数学 最大流

    [BZOJ4429][Nwerc2015] Elementary Math小学数学 Description Ellen给她的学生教小学数学.期末考试已经来临了.考试有n个题目,每一个题目学生们都要对一 ...

  7. 【Android】保存Bitmap到SD卡

    1.打开读写SD卡的权限 需要在AndroidManifest.xml加入如下代码: <uses-permission android:name="android.permission ...

  8. Floyd求最小环并求不同最小环的个数

    FZU2090 旅行社的烦恼 Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u [Subm ...

  9. 输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)

    以前只知道输入一个网站,然后看着返回琳琅满目的内容,其实中间经历的过程和步骤太多了.为了满足好奇心以及学习需要,特查阅了资料将其记录下来以备后续自己复习. 从我在地址栏输入www.zhihu.com ...

  10. apache+tomcat负载均衡3种实现方式

    1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...