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);
            }
        }
    }

    文章转载于网络,如有侵权,请原创留言;内容如有不妥,请各位园友提宝贵意见或建议。所有文章均处于编辑状态。。。。。。百度贴吧:流水小桥吧 如有问题,请点击页面左上角“给我写信”发邮件留言!
  • 相关阅读:
    Report parameters
    维护SE16N Maintain entries
    SE16N Related &SAP_EDIT (转载)
    SD增强 MV45AFZZ
    原始系统问题SE03 Original System
    eclipse 连接不上HBase集群
    Hadoop hdfs yarn HA
    hadoop手动启动jobhistory
    hadoop错误提示 exitCode: 1 due to: Exception from container-launch.
    no filesystem for scheme hdfs
  • 原文地址:https://www.cnblogs.com/flyoung/p/4922886.html
Copyright © 2011-2022 走看看