plusReady(){
// 在这里调用plus api
var CallLog = plus.android.importClass("android.provider.CallLog");
var main = plus.android.runtimeMainActivity();
var obj = main.getContentResolver();
plus.android.importClass(obj);
var selection = {
mobile: '',
startTime: new Date('2021-9-1').getTime(),
endTime: new Date('2021-9-16').getTime(),
type: ''
}
//查询
var sql = '';
var keyword = '';
for (let item of Object.keys(selection)) {
if (selection[item] != '') {
switch (item) {
case 'mobile':
sql = sql == '' ? sql : sql + ' and ';
sql = sql + CallLog.Calls.NUMBER + " like '%" + selection[item] + "%'";
keyword = selection[item];
break;
case 'startTime':
sql = sql == '' ? sql : sql + ' and ';
sql = sql + CallLog.Calls.DATE + '>=' + selection[item];
break;
case 'endTime':
sql = sql == '' ? sql : sql + ' and ';
sql = sql + CallLog.Calls.DATE + '<=' + selection[item];
break;
case 'type':
sql = sql == '' ? sql : sql + ' and ';
sql = sql + CallLog.Calls.TYPE + '=' + selection[item];
break;
}
}
}
sql = sql != '' ? sql : null;
var cursor = obj.query(
CallLog.Calls.CONTENT_URI,
null,
sql, //传入条件
null,
null
);
plus.android.importClass(cursor);
var content = []; // 用来存储数据
var count = 0; // 记录多少条
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 date = new Date(parseInt(
cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))));
// 联系人
var Name_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME);
var name = cursor.getString(Name_Col);
// 号码归属地 返回:北京 联通
var numberLocation = cursor.getString(
cursor.getColumnIndex(CallLog.Calls.GEOCODED_LOCATION)
);
//通话时间,单位:s
var Duration_Col = cursor.getColumnIndexOrThrow(CallLog.Calls.DURATION);
var duration = cursor.getString(Duration_Col);
// 存入数组
content.push({
name: name, // 联系人的姓名
mobile: number, // 联系人电话
numberLocation: numberLocation, // 号码的归属地
// callTime: new Date().getTime(date), // 呼入或呼出时间
callTime: this.formatDate(date), // 呼入或呼出时间
talkTime: duration, // 通话时长
type: type
});
// 查询50条 就跳出
// if (count > 50) {
// break;
// }
}
}
console.log(JSON.stringify(content));
this.tapeList = content
},

清河树人
- 发布:2021-09-15 15:32
- 更新:2024-08-22 11:58
- 阅读:3112
uniapp获取某段时间的通话记录
分类:uni-app
13 个评论
要回复文章请先登录或注册
l***@163.com
2***@qq.com
Liz