qq_35161802 2021-09-07 14:49 采纳率: 0%
浏览 115
已结题

uniapp安卓android获取手机通话记录使用plus.android接口如何获取有限通话记录

var that = this

        plus.android.requestPermissions(
            ['android.permission.READ_CALL_LOG'],
            function(e) {
                if (e.deniedAlways.length > 0) {
                    //权限被永久拒绝  
                    // 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启 
                    console.log('Always Denied!!! ' + e.deniedAlways.toString());
                }
                if (e.deniedPresent.length > 0) {
                    //权限被临时拒绝  
                    // 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限  
                    console.log('Present Denied!!! ' + e.deniedPresent.toString());
                }
                if (e.granted.length > 0) {
                    //权限被允许  
                    //调用依赖获取定位权限的代码  
                    console.log('Granted!!! ' + e.granted.toString());
                }
            },
            function(e) {
                console.log('Request Permissions error:' + JSON.stringify(e));
            }
        )
        
        
        
        var CallLog = plus.android.importClass('android.provider.CallLog');
        var Activity = plus.android.runtimeMainActivity();
        var ContentResolver = plus.android.importClass('android.content.ContentResolver');
        var resolver = Activity.getContentResolver();
        plus.android.importClass(resolver);
        var String = plus.android.importClass("java.lang.String");
        
        var cs = resolver.query(CallLog.Calls.CONTENT_URI, null, null  , null, CallLog.Calls.DEFAULT_SORT_ORDER );
        plus.android.importClass(cs);
        
        var count = 0; // 记录多少条 用于处理循环跳出
        
        
        if (cs.moveToFirst()) {
            while (cs.moveToNext()) {
                count++;
                //号码
                var number = cs.getString(cs.getColumnIndex(CallLog.Calls.NUMBER));
                //呼叫类型
                var type;
                switch (parseInt(cs.getString(cs.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(
                    cs.getString(cs.getColumnIndexOrThrow(CallLog.Calls.DATE))));
                    
                console.log(parseInt(cs.getString(cs.getColumnIndexOrThrow(CallLog.Calls.DATE))));
                // 联系人
                var Name_Col = cs.getColumnIndexOrThrow(CallLog.Calls.CACHED_NAME);
                var name = cs.getString(Name_Col);
                // 号码归属地 返回:北京 联通
                // var numberLocation = cs.getString(
                //     cs.getColumnIndex(CallLog.Calls.GEOCODED_LOCATION)
                // );
                //通话时间,单位:s
                var Duration_Col = cs.getColumnIndexOrThrow(CallLog.Calls.DURATION);
                var duration = cs.getString(Duration_Col);
                
                
               
                // 存入数组 
                that.content.push({
                    name: name, // 联系人的姓名
                    mobile: number, // 联系人电话
                    // numberLocation: numberLocation, // 号码的归属地
                    callTime: this.formatDate(date), // 呼入或呼出时间
                    talkTime: duration, // 通话时长
                    type: type
                });
                
                console.log(that.content)
        
                
                
                
        
        
            }
        }

我参照别人写的获取通话记录,可以获取通话记录但是我需要获取手机最近15天内的通话记录或是倒数150条记录,请问怎么写

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月15日
    • 创建了问题 9月7日

    悬赏问题

    • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
    • ¥15 C语言使用vscode编码错误
    • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
    • ¥20 ensp怎么配置让PC1和PC2通讯上
    • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
    • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
    • ¥15 请各位帮我看看是哪里出了问题
    • ¥15 vs2019的js智能提示
    • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
    • ¥15 uniapp的h5项目写一个抽奖动画