6***@qq.com
6***@qq.com
  • 发布:2021-12-14 09:53
  • 更新:2022-09-28 20:19
  • 阅读:895

uni-app 获取通话记录特别慢,有解决方法吗

分类:uni-app

uni-app 获取通话记录特别慢,有解决方法吗?
需要等5-6秒才开始走方法是哪里有问题吗

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))));
// 联系人
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  
                        });  

                        if (count > 200) {  
                            break;  
                        }  
                    }                     
                }
2021-12-14 09:53 负责人:无 分享
已邀请:
阿酸牛奶

阿酸牛奶

能获取ios端的么

8***@qq.com

8***@qq.com

我也用到这个获取通话记录的权限,但我给了之后提示永久拒绝该权限,手动赋予也不行。你有过或处理过这个问题吗

  • 我是纸飞机

    你能获取到通话录音文件吗?为什么我的一直显示是一个null?

    2022-10-08 15:38

  • 我是纸飞机

    自定义基座测试

    2022-10-08 15:38

  • 8***@qq.com

    回复 我是纸飞机: 能拿到,但在部分机型上拿不到第一条数据

    2022-10-17 11:11

要回复问题请先登录注册