`
googlelee
  • 浏览: 116079 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

监听电话的receiver片段

 
阅读更多

 

public class PhoneStatReceiver extends BroadcastReceiver {

        boolean mIsComingCall = false;

        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG,"onReceive():intent.getAction()="+intent.getAction());
            if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
                String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
                Log.i(TAG, "call OUT:" + phoneNumber);
               
            } else if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
                if(mGridLayer != null){
                    boolean mIsSlide = mGridLayer.inSlideShowMode();
                    Log.d(TAG,"onReceive():mIsSlide="+mIsSlide);
                    if(!mIsSlide){
                        return;
                    }
                }else{
                    return;
                }
                TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
                switch (tm.getCallState()) {
                    case TelephonyManager.CALL_STATE_RINGING:
                        mIsComingCall = true;
                        String incoming_number = intent.getStringExtra("incoming_number");
                        Log.i(TAG, "RINGING :" + incoming_number);
                        break;
                    case TelephonyManager.CALL_STATE_OFFHOOK:
                        if (mIsComingCall) {
                            Log.i(TAG, "incoming ACCEPT");
                            mHasPhoneCame = true;
                        }
                        break;
   
                    case TelephonyManager.CALL_STATE_IDLE:
                        if (mIsComingCall) {
                            Log.i(TAG, "incoming IDLE");
                            mHasPhoneCame = true;
                        }
                        break;
                }
            } else {
                Log.i(TAG, "onreceive else");
            }
        }
    }

分享到:
评论

相关推荐

    Sender-receiver 消息

    Receiver通常是消息的接收端,虽然在提供的代码片段中Receiver部分没有完全给出,但通常Receiver也会使用JNDI查找队列,并创建`QueueConnection`、`QueueSession`和`MessageListener`。Receiver通过注册`Message...

    广播监听的demo

    在这个demo中,我们可能会看到以下代码片段: ```java public class ListenHome extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_CLOSE_...

    android 监听短信数据库

    以下是对“android 监听短信数据库”这一主题的深入解析,包括关键代码片段的解释和相关知识点的详细说明。 ### 关键知识点 #### 1. ContentObserver类的使用 `ContentObserver`是Android系统中用于监听...

    Android 来电拦截及拦截后的提示音源码.zip

    在Android平台上,来电拦截功能是通过使用电话管理器(TelephonyManager)服务和注册广播接收器(BroadcastReceiver)来实现的。此压缩包文件“Android 来电拦截及拦截后的提示音源码.zip”可能包含了一个完整的示例...

    20个Android很有用的代码片段

    ### 20个Android很有用的代码片段 在Android应用开发的过程中,经常需要编写各种功能性的代码片段来实现特定的功能需求。以下是从一篇名为“20个Android很有用的代码片段”的文章中提取的一些关键代码段及其解释。...

    Android 监听WiFi的开关状态实现代码

    根据提供的代码片段,我们看到`WifiSwitch_Presenter`类是负责WiFi状态监听的核心类。这个类实现了`WifiSwitch_Interface`接口,该接口定义了方法`wifiSwitchState(int state)`,用于在WiFi状态发生变化时通知调用者...

    搜索局域网内IPCamera设备

    在`Receiver`类中,初始化了一个线程`_thread`,该线程的主要任务是创建一个UDP客户端socket,并监听9003端口。端口选择通常基于应用程序的需求,9003可能是特定于IPCamera设备的默认端口或者是开发者自定义的。`...

    安卓常用代码集合

    【安卓常用代码集合】是一个针对初级安卓开发者整理的代码片段集合,旨在帮助初学者快速理解和掌握安卓开发中的常见操作。这个集合包括了调用浏览器、接收系统广播等方面的示例代码,下面将对这些知识点进行详细的...

    Android 手机获取手机号实现方法

    首先,Android系统提供了`TelephonyManager`类来获取设备的电话相关信息。通过以下代码片段,我们可以获取到SIM卡的一些基本信息: ```java TelephonyManager tm = (TelephonyManager) this.getSystemService...

    Android开发之BroadcastReceiver用法实例分析

    在示例的Activity中,可能包含以下代码片段: ```java public class BroadcastReceiverActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate...

    Android常用代码集合.pdf

    在Android开发中,经常会遇到各种各样的编程需求,这篇文档整理了一些常见的代码片段,便于开发者快速查找和使用。以下是一些关键的Android代码示例: 1. **调用系统浏览器打开指定网址** ```java Uri uri = Uri....

    侦测USB mount android

    在给定的`AndroidManifest.xml`片段中,可以看到`SDMountReceiver`接收器被声明为一个`<receiver>`元素,并指定了多个`<action>`和`<data>`元素。这些元素定义了接收器所监听的广播动作和数据类型。例如,`...

    广播接受者demo

    在Android系统中,广播接收者(Broadcast Receiver)是四大组件之一,它负责监听并响应系统或应用程序广播事件。广播接收者可以无须用户交互就能接收到消息,这使得它们成为执行后台任务和处理系统级事件的理想选择...

    安卓最简单程序 点击与触摸

    每个安卓应用都是由一个或多个组件构成的,比如活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)。在这个实例中,我们将主要关注活动,因为它是用户与应用...

    android底层4页框架

    此外,Android框架还包含了Intent(意图)、Fragment(片段)、AsyncTask(异步任务)等重要概念,它们与四大组件共同构成了Android应用开发的基石。熟悉并熟练运用这些知识,可以极大地提高开发效率和应用质量。

    Android开发入门与实战源码

    Broadcast Receiver监听系统广播事件;Content Provider则负责数据的共享和管理。此外,还需要熟悉AndroidManifest.xml文件,它是应用的配置文件,包含应用的所有组件声明和其他重要设置。 接下来,"实战源码"部分...

    『若水新闻』Android开发从零开始完整课件源码

    Activity是用户界面的主要承载,Service则用于在后台执行长时间运行的任务,Broadcast Receiver能监听系统或自定义广播事件,而Content Provider则用于数据共享。 课程中还会详细介绍XML布局文件的使用,这是构建...

    教案Android常用代码集合.pdf

    在Android开发中,掌握一些常用的代码片段可以极大地提高开发效率,减少出错的可能性。下面将对上述提供的Android常用代码集合进行详细的解释和扩展。 1. **调用浏览器打开指定网址** 这段代码用于启动设备上的...

Global site tag (gtag.js) - Google Analytics