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);
        }
    }
    复制代码
  • 相关阅读:
    python 访问对象的属性与方法
    python 使用类实列化对象
    python 第一个Python类(创建类)
    python 安装第三方模块
    Redux其实很简单(原理篇)
    JavaScript、ES5和ES6的介绍和区别
    Yes,I know the way to learn Ens !
    移动游戏加载性能和内存管理全解析 学习
    内存耗用:VSS/RSS/PSS/USS
    Android性能测试-内存
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7019905.html
Copyright © 2011-2022 走看看