zoukankan      html  css  js  c++  java
  • android怎么实现自动接听

    添加权限
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>

    package com.xiawenquan.pic.demo.utils;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.telephony.PhoneStateListener;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.widget.TextView;

    public class Auto_accept_callActivity extends Activity {
        TelephonyManager manager;
        String result = "监听电话状态:/n";
        TextView textView;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
            // 获取电话服务
            manager.listen(new MyPhoneStateListener(),
                    PhoneStateListener.LISTEN_CALL_STATE);
            // 手动注册对PhoneStateListener中的listen_call_state状态进行监听
        }

        public void auto_accept_call() {
            Intent localIntent1 = new Intent(Intent.ACTION_HEADSET_PLUG);
            localIntent1.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            localIntent1.putExtra("state", 1);
            localIntent1.putExtra("microphone", 1);
            localIntent1.putExtra("name", "Headset");
            this.sendOrderedBroadcast(localIntent1,
                    "android.permission.CALL_PRIVILEGED");
            Intent localIntent2 = new Intent(Intent.ACTION_MEDIA_BUTTON);
            KeyEvent localKeyEvent1 = new KeyEvent(KeyEvent.ACTION_DOWN,
                    KeyEvent.KEYCODE_HEADSETHOOK);
            localIntent2.putExtra("android.intent.extra.KEY_EVENT", localKeyEvent1);
            this.sendOrderedBroadcast(localIntent2,
                    "android.permission.CALL_PRIVILEGED");
            Intent localIntent3 = new Intent(Intent.ACTION_MEDIA_BUTTON);
            KeyEvent localKeyEvent2 = new KeyEvent(KeyEvent.ACTION_UP,
                    KeyEvent.KEYCODE_HEADSETHOOK);
            localIntent3.putExtra("android.intent.extra.KEY_EVENT", localKeyEvent2);
            this.sendOrderedBroadcast(localIntent3,
                    "android.permission.CALL_PRIVILEGED");
            Intent localIntent4 = new Intent(Intent.ACTION_HEADSET_PLUG);
            localIntent4.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

            localIntent4.putExtra("state", 0);
            localIntent4.putExtra("microphone", 1);
            localIntent4.putExtra("name", "Headset");
            this.sendOrderedBroadcast(localIntent4,
                    "android.permission.CALL_PRIVILEGED");
        }

        /***
         * 继承PhoneStateListener类,我们可以重新其内部的各种监听方法 然后通过手机状态改变时,系统自动触发这些方法来实现我们想要的功能
         */
        class MyPhoneStateListener extends PhoneStateListener {
            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                Log.v("log", "oncall state changed");
                switch (state) {
                case TelephonyManager.CALL_STATE_IDLE:
                    result += " 手机空闲 ";
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    result += " 手机铃响:" + incomingNumber;
                    Log.v("log", result);
                    Auto_accept_callActivity.this.auto_accept_call();
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    result += " 电话挂起 ";
                default:
                    break;
                }
                super.onCallStateChanged(state, incomingNumber);
            }
        }
    }

    文章转载于网络,如有侵权,请原创留言;内容如有不妥,请各位园友提宝贵意见或建议。所有文章均处于编辑状态。。。。。。百度贴吧:流水小桥吧 如有问题,请点击页面左上角“给我写信”发邮件留言!
  • 相关阅读:
    Atitit 引流矩阵与矩阵引流 推广方法 attilax总结
    Atitit 怎么阅读一本书 消化 分析 检索 attilax总结 1. 读书的本质 是数据的处理,大量的数据,处理能力有限的大脑 2 2. ETL数据清洗转换 摘要,缩小数据规模 2 2.1
    Atitit 为什么要读书,读书的好处是什么 attilax总结
    Atititi. naming spec 联系人命名与remark备注指南规范v5 r99.docx
    Atitit 安全规范 指南 常见五种意外防止规范 attilax总结
    数据安全 密码学原理与概论
    Atitit 理财之道分期与利率的比较列表 attilax总结
    Atitit 完整知识体系表 attilax总结 要读哪些书
    Atitit 为什么互联网机会这么大
    Atitit 建立新组织集团模型的框架基本制度与一些原则
  • 原文地址:https://www.cnblogs.com/flyoung/p/4922886.html
Copyright © 2011-2022 走看看