• 电话状态的监听。响铃,静止,接起


    复制代码
    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);
        }
    }
    复制代码
  • 相关阅读:
    PHP线程安全和非线程安全有什么区别
    SHOW SLAVE STATUS 详解
    linux 2>&1
    crontab 例行性排程
    clang-format 数组初始化,多行模式
    windows 10 1909 无法启用 .NET Framework 解决
    SysCtlDelay 实现延时
    wpa_supplicant 检测错误密码
    swig python dynamic module does not define init function
    讯飞错误码10116
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7019905.html
Copyright © 2020-2023  润新知