请选择 进入手机版 | 继续访问电脑版
JAVEN

关于获取拨出号码的通话时间

所在版块: JavaEE技术 2016-12-05 23:13 [复制链接] 查看: 909|回复: 2
由于最近公司项目中要接入cordova插件,在使用第三方CordovaCallNumberPlugin打电话插件,因为需求中需要打电话的时长,自己在CordovaCallNumberPlugin中看了,也没有这个功能,看来也只能自己动手改了。
安装插件:
cordova plugin add https://github.com/Rohfosho/CordovaCallNumberPlugin
1.通过电话TelephonyManager设置监听
telephonyManager = (TelephonyManager) cordova.getActivity().getSystemService(Service.TELEPHONY_SERVICE);telephonyManager.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);   
因为这个功能是在cordova插件里写的,是用的cordova.getActivity获得的上下文。
2.创建电话监听器
private PhoneStateListener listener = new PhoneStateListener(){@Overridepublic void onCallStateChanged(int state, String incomingNumber) {  //注意,方法必须写在super方法后面,否则incomingNumber(来电号码)无法获取到值。  super.onCallStateChanged(state, incomingNumber);  switch (state){    case TelephonyManager.CALL_STATE_IDLE://挂断      ContentResolver contentResolver = cordova.getActivity().getContentResolver();      Cursor cursor = contentResolver.query(CallLog.Calls.CONTENT_URI,//系统方式获取通讯录存储地址              new String[]{CallLog.Calls.CACHED_NAME//姓名                      , String.valueOf(CallLog.Calls.OUTGOING_TYPE)//呼出                      , CallLog.Calls.DATE//拨打时间                      , CallLog.Calls.DURATION}//通话时长              , null, null, CallLog.Calls.DEFAULT_SORT_ORDER);      if (null != cursor &&cursor.getCount() > 0){          if (cursor.moveToFirst()){            long duration = cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DURATION));            JSONObject jsonObject = new JSONObject();            try {              jsonObject.put("duration",duration);              jsonObject.put("code","成功");              callbackContext.success(jsonObject);            } catch (JSONException e) {              callbackContext.error("返回数据失败");            }          }      }else {        //获取通话记录失败        callbackContext.error("获取记录失败");      }      cursor.close();      telephonyManager.listen(listener,LISTEN_NONE);//注销监听      break;  }}};
可以看到上面,在监听到的状态为CALLSTATEIDLE时,在通过ContentResolver对象在数据库中查询;每次操作完后并注销监听。哈哈 第一次写博客,写的不好,来打我呀。

回复

使用道具 举报

科学巨人-马云

  • TA的每日心情
    奋斗
    2016-7-28 15:40
  • 签到天数: 16 天

    [LV.4]偶尔看看III

     楼主| 发表于 2016-12-5 23:15:00 | 显示全部楼层
    文哥啊,能不能搞个支持Markdown编辑的
    回复 支持 反对

    使用道具 举报

    smlqf7

    该用户从未签到

    发表于 2018-9-27 04:03:21 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    我的博客

    QQ|Archiver|手机版|小黑屋|课堂笔记  

    GMT+8, 2018-12-12 11:46 , Processed in 0.079693 second(s), 30 queries .

    快速回复 返回列表