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

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

时间: 2024-10-10 17:07:43

电话状态的监听。响铃,静止,接起的相关文章

服务中电话状态的监听

public class AddressService extends Service { public static final String tag = "AddressService"; private TelephonyManager mTM; private MyPhoneStateListener mPhoneStateListener; private final WindowManager.LayoutParams mParams = new WindowManager

android电话状态的监听

电话状态的监听: /*** * 继承PhoneStateListener类,我们能够又一次其内部的各种监听方法 然后通过手机状态改变时,系统自己主动触发这些方法来实现我们想要的功能 */ class MyPhoneStateListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { switch (state) { case T

Phone状态的监听机制

一 监听手机Phone状态 在手机里面监听Phone的状态有两种方法: 1 注册接收广播 AndroidMenifest.xml: <receiver android:name="CallListener" > <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> <action android:name="andro

Android获取手机状态和监听手机来电状态

获取手机状态: import android.content.Context; import android.telephony.TelephonyManager; //获得相应的系统服务 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** * 返回电话状态 * * CALL_STATE_IDLE 无任何状态时 * CALL_STATE_OFFHOOK 接起电话时 *

(一二五)手机网络状态的监听

对于一些需要与服务器进行长连接的App,需要对网络状态进行监控,当网络不佳时及时提醒用户,从而提高用户体验.通过苹果自带的框架和Reachability类可以实现网络状态改变的监听. 要实现网络监听,按照下面的步骤进行. ①导入SystemConfiguration框架. ②通过Xcode的帮助文档搜索Reachability,打开样例工程,将其中的Reachability类的代码拷贝到自己的工程,有两个文件,如下图所示. ③创建对象,保存对象,添加监听和启动监听. 注意reachability

ListView的View回收引起的checkbox状态改变监听等问题解决方案

我的ListView中每行View包含一个ImageView.TextView.CheckBox.当ListView中有一个或一个一行CheckBox被选中就让ListView上面的Button显示,否则就隐藏.因此,需要对每行View中的CheckBox设置监听.我使用CheckBox中的OnCheckedChangeListener监听器,当CheckBox的状态发生改变的时候就会触发这个监听器.先看下我自定义给ListView的Adapter的getView方法中的一些关键代码: 这是ge

andriod电话状态监听-来电去电

Android在电话状态改变是会发送action为android.intent.action.PHONE_STATE的广播, 而拨打电话时会发送action为 android.intent.action.NEW_OUTGOING_CALL的广播 android 在音乐播放器里面对电话状态的监听,比如:正在播放音乐,来电(去电)则暂停音乐,挂断电话则继续播放音乐. 一.电话活动监听广播 public class PhoneReceiver extends BroadcastReceiver { p

Android中检查、监听电量和充电状态的方法

Android中检查.监听电量和充电状态的方法 这篇文章主要介绍了Android中检查.监听电量和充电状态的方法,如判断当前充电状态.监听充电状态的改变.判断当前剩余电量等,需要的朋友可以参考下 当你在更改后台更新频率来减少这些更新对电池寿命的影响时,检查当前电量和充电状态是一个好的开始. 电池寿命通过剩余电量和充电状态来影响应用更新的执行.当用交流电充电时,执行更新操作对设备的影响是微不足道的,所以在大多数案例里,你可以把更新频率调到最快.如果设备不在充电,降低更新频率可以帮助延长电池寿命.

Android监听外部存储设备的状态(SD卡、U盘等等)

最近在项目中需要对外部存储设备的状态进行监听,所以整理了此笔记,以便日后查看. 外部存储设备的状态变化时发出的广播 对比不同状态下的广播 1. 插入外部SD卡时: 2. 移除外部SD卡时: 3. 连接PC进入USB大容量存储模式时: 4. 连接PC退出USB大容量存储模式时: 代码实现监听 public void startListen() { IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED); i