如何实现判断对方是否接通

@Override
protected void onRestart() {
super.onRestart();  
String strNumber, strName = "";
int type;
long callTime;
Date date;
String time = "";
String duration;
ContentResolver cr = getContentResolver();
final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI,
new String[] { CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,
CallLog.Calls.TYPE, CallLog.Calls.DATE,
CallLog.Calls.DURATION }, null, null,
CallLog.Calls.DEFAULT_SORT_ORDER);
cursor.moveToPosition(0);
strNumber = cursor.getString(0); // 呼叫号码
strName = cursor.getString(1); // 联系人姓名
type = cursor.getInt(2); // 来电:1,拨出:2,未接:3 
duration = cursor.getString(4);//
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
date = new Date(Long.parseLong(cursor.getString(3)));
time = sfd.format(date);
if(D) Log.d(TAG,"duration" + duration);
if(D) Log.d(TAG,"strNumber" + strNumber);
}
在手机状态从hookoff转变成IDLE之后,迅速读取通话时间,如果通话时间为0,那就证明没有打通电话!

其实下面的这段代码也可以放到onRestart()中完成。

判断程序:
private class MyPhoneListener extends  PhoneStateListener{

public void onCallStateChanged(int state, String incomingNumber) {
         switch (state) {
         case TelephonyManager.CALL_STATE_RINGING://来电振动
        if(D) Log.d(TAG,"CALL_STATE_RINGING");
             break;
         case TelephonyManager.CALL_STATE_OFFHOOK:// 接通电话     
               //在这里进行接通电话的处理,不过如果是拨打电话的时候,不会有来电振动,会直接到这个状态     
        if(D) Log.d(TAG,"CALL_STATE_OFFHOOK");
        call_flag = true;
             break;
         case TelephonyManager.CALL_STATE_IDLE://挂断电话,也就是电话处于没有拨打的状态
        if(D) Log.d(TAG,"CALL_STATE_IDLE");
        int integers = 0;
        if(duration != null){
        integers = Integer.parseInt(duration);
        }
        if(D) Log.d(TAG,"duration"+integers);
        if( integers > 0 && call_flag == true){//证明接通了
        call_flag = false;
        if(D) Log.d(TAG,"she pick it up");
        }else{
        if(D) Log.d(TAG,"she doesn't pick it up");
        Intent phoneIntent = new Intent("android.intent.action.CALL", 
  Uri.parse("tel:10010")); 
  startActivity(phoneIntent);
        }
             break;
         }
     }

基本能够实现判断是否接通的功能。

转载于:https://www.cnblogs.com/dingchao823/p/4794052.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值