美文网首页
Android-黑名单来电自动静音

Android-黑名单来电自动静音

作者: 见哥哥长高了 | 来源:发表于2019-07-12 10:28 被阅读0次

当前几乎每个手机中都有很名单的功能,被列入黑名单的用户不能打进电话和发进短信。我们下面举一个简单的实例来实现黑名单来电自动静音的功能。
实现步骤:
1、添加一个EditText来输入黑名单用户的号码
2、添加一个TextView来显示当前设备的状态(待机/通话中/来电中)
3、新建一个内部类mPhoneCallListener 继承 PhoneStateListener,并实现onCallStateChanged方法完成具体逻辑功能
具体实现,请看代码部分:

    private TextView textView01;
    private TextView textView03;
    private EditText editText01;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //设置PhoneCallListener
        mPhoneCallListener phoneCallListener = new mPhoneCallListener();

        //用TelephonyManager抓取Telephone Severice
        TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);

        //设置Listen Call
        telephonyManager.listen(phoneCallListener,mPhoneCallListener.LISTEN_CALL_STATE);

        textView01 = (TextView)findViewById(R.id.textview01);
        textView03 = (TextView)findViewById(R.id.textview03);
        editText01 = (EditText)findViewById(R.id.edittext01);

    }

判断PhoneStateListener当前的状态

    public class mPhoneCallListener extends PhoneStateListener{

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {

            /*
            public static final int CALL_STATE_IDLE = 0;
            public static final int CALL_STATE_OFFHOOK = 2;
            public static final int CALL_STATE_RINGING = 1;
            */

            switch (state){

                //获取手机的待机状态
                case TelephonyManager.CALL_STATE_IDLE:

                  textView01.setText("当前手机处于待机状态");

                  try {

                      AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

                      if (audioManager != null){

                          //设置手机为待机时响铃正常
                          audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

                          audioManager.getStreamVolume(AudioManager.STREAM_RING);
                      }

                  }catch (Exception e){

                      textView01.setText(e.toString());

                      e.printStackTrace();
                  }

                    break;


                case TelephonyManager.CALL_STATE_OFFHOOK:

                    textView01.setText("当前手机处于通话中");

                    break;

                case TelephonyManager.CALL_STATE_RINGING:

                    textView01.setText("当前手机处于来电:"+incomingNumber);

                    //判断电话是否一致 一致的时候用静音
                    if (incomingNumber.equals(editText01.getText().toString())){

                        try {

                            AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

                            if (audioManager != null){

                                //设置响铃为静音
                                audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

                                audioManager.getStreamVolume(AudioManager.STREAM_RING);

                                Toast.makeText(MainActivity.this,"黑名单"+incomingNumber + "给你来电了",0).show();
                            }


                        }catch (Exception e){

                            textView01.setText(e.toString());

                            e.printStackTrace();

                        }

                    }

                    break;

            }

            super.onCallStateChanged(state, incomingNumber);


            editText01.setOnKeyListener(new TextView.OnKeyListener(){

                @Override
                public boolean onKey(View view, int i, KeyEvent keyEvent) {

                    //设置edittext的文本信息显示在textview中
                    textView03.setText(editText01.getText().toString());

                    return false;
                }
            });
        }
    }

相关文章

  • Android-黑名单来电自动静音

    当前几乎每个手机中都有很名单的功能,被列入黑名单的用户不能打进电话和发进短信。我们下面举一个简单的实例来实现黑名单...

  • 20190416

    手机屏幕上显示你的来电时,正在开每周例会,手机静音,所以让手机自动挂断你的来电,不是不能接电话,是不想和你说话。你...

  • 黑名单来电

    这个号码打来很多次了,不知道为什么今天打了那么多次。估计是我的号码的前主人的家人。是个老爷爷。每次打来第一句都是×...

  • video无法自动播放问题

    如果要使video自动播放,则必须加上muted静音选项,否则无法实现自动播放。

  • H5 video标签自动播放无效?

    自动播放无效 加上 muted 属性 muted 属性用来表示网页中的音频是否静音,如果设置,音频将被初始化为静音

  • Android Studio 视图结构

    1、Tools->Android->Layout Inspector2、Tools->Android->Andro...

  • 未接来电

    只因匆忙, 只因吵闹, 只因瞌睡, 只因静音, 来电未接—— 未接来电。 错过的, 不仅仅是 一个饭局, 一次相见...

  • web前端入门到实战:html网页添加音乐视频方式

    1.video标签 支持firefox自动播放 谷歌、ie不支持自动播放 谷歌可以通过添加 muted 通过静音...

  • 第三方唤醒&登陆

    #功能说明:第三方应用或web下载/唤醒/自动登录到学习通 #负责人:iOS-肖泽强, android-殷雅乐 #...

  • 无声-3

    坐在候机室里, 我静音的手机显示父亲的来电, 一遍又一遍, 未接来电23通, 感觉数目还会继续增加。 我默默的翻着...

网友评论

      本文标题:Android-黑名单来电自动静音

      本文链接:https://www.haomeiwen.com/subject/jwaskctx.html