当前位置: 萬仟网 > 移动技术>移动开发>Android > Android自动拦截与接听功能APK黑白名单

Android自动拦截与接听功能APK黑白名单

2021年12月29日 Android 我要评论
自动接听与挂断调用关系如下1. 首先在启动apk初始界面的activity中,启动service服务,开始监听通话状态(incallservice) //启动通话状态监听服务 private

自动接听与挂断调用关系如下

1. 首先在启动apk初始界面的activity中,启动service服务,开始监听通话状态(incallservice)

   //启动通话状态监听服务
    private void startcalllisten() {
        intent intent = new intent(callandmessageentranceactivity.this, incallservice.class);
        startservice(intent);
}
 

2. 在通话监听服务中,监听通话状态,当通话状态为call_state_ringing时处理通话。

public class incallservice extends service {
    private telecommanager mtelecommanager;
    private telephonymanager mtelephonymanager;
    myphonestatelistener mmyphonestatelistener = new myphonestatelistener();
 
    @override
    public void oncreate() {
        log.e("incallservice", "oncreate()");
        super.oncreate();
 
        //获取电话服务
        mtelecommanager = (telecommanager) getsystemservice(context.telecom_service);
        mtelephonymanager = (telephonymanager) getsystemservice(context.telephony_service);
   }
 
    @override
    public int onstartcommand(intent intent, int flags, int startid) {
        if (mtelephonymanager == null) {
            mtelephonymanager = (telephonymanager) getsystemservice(context.telephony_service);
        }
        mtelephonymanager.listen(mmyphonestatelistener, phonestatelistener.listen_call_state);
        return super.onstartcommand(intent, flags, startid);
    }
 
    //监听通过话
    public class myphonestatelistener extends phonestatelistener {
 
        @requiresapi(api = build.version_codes.p)
        @override
        public void oncallstatechanged(int state, final string incomingnumber) {
            super.oncallstatechanged(state, incomingnumber);
            switch (state) {
                case telephonymanager.call_state_idle:
                    //通话空闲状态
                    break;
                case telephonymanager.call_state_ringing:
                    //通话来电状态
                    try {
                        log.e("c_m_blackcallservice", "monitor incoming calls");
                        //拦截来电判断来电时黑名单or白名单
                        splitwhiteandblack(incomingnumber);
                    } catch (exception e) {
                        e.printstacktrace();
                    }
                    break;
                case telephonymanager.call_state_offhook:
                    //电话挂起状态
                    break;
            }
 
        }
    }
    //incomingnumber:来电号码 依据来电号码判断黑白名单
    private void splitwhiteandblack(string incomingnumber) {
        //1.黑名单自动挂断
        mtelecommanager.endcall();
        //2.白名单自动接听
        mtelecommanager.acceptringingcall();
    }
    @override
    public void ondestroy() {
        super.ondestroy();
 
}

到此这篇关于android自动拦截与接听功能apk黑白名单的文章就介绍到这了,更多相关android拦截与接听内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com