更新记录

1.0.0(2023-08-14)

android通话记录管理,增删改查。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


调用数据

有限支持,因为没啥技术支持的。u7746@163.com 对应的权限请在宿主app进行统一管理。 为了插件健壮性,插件也会兜底判断申请相关权限。

1、查询通话记录

var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.startDate = "2023-08-01 00:00:00"; //查询开始日期请精确到秒
paramObjs.endDate = '2023-08-31 00:00:00';     //查询结束日期请精确到秒
testModule.searchCallLog(paramObjs,(ret) => {
    //生成日程的id
    console.log("tapCallLog", ret);
    //ret为数组,具体结构如下
    //type为业务类型1为权限类数据返回 2为通话记录相关数据
    //code 1正常 非1失败
    {
    "type":"2",
    "code":"1",
    "msg":[
        {
            "type":"打入",
            "id":"872",
            "name":"未备注联系人",
            "number":"075536661888",
            "duration":"81秒",
            "date":"2023-08-10 16:38:25"
        }
        ]
    }

});

2、新建通话记录

var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.number = "13800138000";    //通话记录的手机号
paramObjs.date = "2023-08-09 12:00:00"; //通话日期
paramObjs.duration = "60";    //通话时长
paramObjs.type = "1";    //1打入2打出3未接4语音信箱5拒接6黑名单
paramObjs.name = "";    //通话记录的姓名 对应手机通讯录里的名子
testModule.addCallLog(paramObjs,(ret) => {
    console.log("taoAddCallLog", JSON.stringify(ret));
    //ret具体结构如下
    //type为业务类型1为权限类数据返回 2为通话记录相关数据
    //code 1正常 非1失败
    //msg 1成功 非1失败
    {
    "type":"2",
    "code":"1",
    "msg":"1"
    }
});

3、修改通话记录

var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.id = "849" //查询方法返回的id
paramObjs.number = "13800138000"; //通话记录的手机号
paramObjs.date = "2023-07-27 12:00:00"; //通话日期
paramObjs.duration = "60";    //通话时长
paramObjs.type = "1";    //1打入2打出3未接4语音信箱5拒接6黑名单
paramObjs.name = "";    //通话记录的姓名 对应手机通讯录里的名子
testModule.updateCallLog(paramObjs,(ret) => {
    console.log("updateCallLog", JSON.stringify(ret));
    //ret具体结构如下
    //type为业务类型1为权限类数据返回 2为通话记录相关数据
    //code 1正常 非1失败
    //msg 1成功 非1失败
    {
    "type":"2",
    "code":"1",
    "msg":"1"
    }
});

4、删除通话记录

var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.number = "13804247861"; //当删除的手机号对应的通话记录 允许为空
paramObjs.id = 873; //查询方法返回的id
//id与number为or的关系。单纯以手机号删除侵略性太大,所以追加id为条件删除。两个条件不要同时为空
testModule.deleteCallLog(paramObjs,(ret) => {
    console.log("updateCallLog", JSON.stringify(ret));
    //ret具体结构如下
    //type为业务类型1为权限类数据返回 2为通话记录相关数据
    //code 1正常 非1失败
    //msg 1成功 非1失败
    {
    "type":"2",
    "code":"1",
    "msg":"1"
    }
});

4、申请权限相关返回说明

当宿主app没有判断权限时,调用所有方法插件也会判断。
check权限返回{"type":"1","code":"1","msg":"没有权限WRITE_CALL_LOG"}
用户操作同意或者拒绝
{"type":"1","code":"1","msg":"android.permission.WRITE_CALL_LOG:0"} msg 0表示同意

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.READ_CALL_LOG"/> <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问