android 通话状态

本文介绍了一个简单的监听器实现方案,该监听器可以检测电话状态的变化,包括电话开始、进行中和结束等不同状态,并根据状态变化调整手机铃声音量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用:http://blog.chinaunix.net/uid-25370280-id-2941384.html

思路:就是一个监听,很简单
代码如下你自己试试:
private class EndCallListener extends PhoneStateListener {
            boolean flag =false ;
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
                //铃声状态
                AudioManager aui =(AudioManager) CallActivity.this.getSystemService(Context.AUDIO_SERVICE);
                
                switch(state)
                {
                case TelephonyManager.CALL_STATE_IDLE://闲置或结束电话
                        aui.setMode(AudioManager.RINGER_MODE_NORMAL);
                        if(flag){
                                flag= false ;
                                Toast.makeText(CallActivity.this, "通话结束", Toast.LENGTH_LONG).show();
                                
                        }else{
                                Toast.makeText(CallActivity.this, "闲置", Toast.LENGTH_LONG).show();
                        }
                        break;
                case TelephonyManager.CALL_STATE_OFFHOOK://通话中
                        flag= true ;
                        Toast.makeText(CallActivity.this, "通话中", Toast.LENGTH_LONG).show();
                        break ;
                case TelephonyManager.CALL_STATE_RINGING://来电
                        
                        Toast.makeText(CallActivity.this, "来电", Toast.LENGTH_LONG).show();
                        call_incom(incomingNumber,aui);
                        break;
                
                }
        }

在activity的onCreate中:
EndCallListener callListener = new EndCallListener();
                TelephonyManager mTM = (TelephonyManager)CallActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
                mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值