zoukankan      html  css  js  c++  java
  • 电话状态的监听。响铃,静止,接起

    复制代码
    package com.sharpcj.telephonestatelistenerdemo;
    
    import android.content.Context;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.telephony.PhoneStateListener;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
    
        private TelephonyManager mTelephonyManager;
        private static final String TAG = "sharpcj:";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            mTelephonyManager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
            //不要忘记了权限的添加
            //<uses-permission Android:name="android.permission.READ_PHONE_STATE" />
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mTelephonyManager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_NONE);
        }
    
        class MyPhoneStateListener extends PhoneStateListener {
            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                /**
                 * 返回电话状态
                 *
                 * CALL_STATE_IDLE 无任何状态时
                 * CALL_STATE_OFFHOOK 接起电话时
                 * CALL_STATE_RINGING 电话进来时
                 */
                switch (state) {
                    case TelephonyManager.CALL_STATE_IDLE://无任何状态时
                        logi("CALL_STATE_IDLE");
                        break;
                    case TelephonyManager.CALL_STATE_RINGING://电话进来时
                        logi("CALL_STATE_RINGING");
                        break;
                    case TelephonyManager.CALL_STATE_OFFHOOK://接起电话时
                        logi("CALL_STATE_OFFHOOK");
                        break;
                    default:
                        super.onCallStateChanged(state, incomingNumber);
                        break;
                }
            }
        }
    
    
        public void logi(String s) {
            Log.i(TAG, "joy:---" + s);
        }
    }
    复制代码
  • 相关阅读:
    Zookeeper 入门第一篇
    jmap命令
    Java中的原子操作类
    Fel表达式实践
    Fel表达式使用过程中需要注意的问题
    【luoguP1196】 [NOI2002]银河英雄传说--边带权并查集 ,
    【luoguP1955 】[NOI2015]程序自动分析--普通并查集
    【csp模拟赛2】 序列操作
    【csp模拟赛2】 爆搜 方格加数
    HZWER
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7019905.html
Copyright © 2011-2022 走看看