`
早茶_
  • 浏览: 590 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于android receiver

阅读更多
关于android receiver
可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。
1.
首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件的发生,并且发生后调用我们的camera程序

<receiver android:name="CameraButtonIntentReceiver">
            <intent-filter>
                <action android:name="android.intent.action.CAMERA_BUTTON"/>
            </intent-filter>
</receiver>


另外,当程序需要使用手机相关的服务, 如电话、短信、因特网等功能时,就得在Manifest中添加对于的user-permission。

在这个配置文件中声明了一个receiver用来监听相机的按键事件,所以还需要在代码文件定义与配置文件中同名的receiver:


public class CameraButtonIntentReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(Intent.ACTION_MAIN);
        i.setClass(context, Camera.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
}
}


2.
      关于另外一种,在代码中注册一个receiver,例如我们想在代码文件中监听电池电量的变化,就可以按照如下方法



private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {
       @Override
        public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
              if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
              …
              }
        }
}


这种方法需要在onCreate 或者onStart中注册该receiver所感兴趣的intent,如:
registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);

在onStop及onDestroy中注销监听

registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);


系统广播可以捕捉系统发出的行为有:
1. “android.provider.Telephony.SMS_RECEIVED” 收到短信
2. Intent.ACTION_BATTERY_CHANGED 剩余的手机电池量
3. Intent.ACTION_MEDIA_MOUNTED  SD卡成功挂载
4. Intent.ACTION_MEDIA_UNMOUNTED SD卡未挂载
5. Intent.ACTION_NEW_OUTGOING_CALL拨打电话
6. Intent.ACTION_PACKAGE_ADDED执行安装
7. Intent.ACTION_PACKAGE_REMOVED 执行卸载
分享到:
评论

相关推荐

    Mirrorop Receiver for android

    MirrorOp发送端可以将自己的Android屏幕透过网路(WIFI/Ethernet)或是USB投射到装有MirrorOp收屏端的装置上,如电视,投影机,手机或是平板,让使用者能够轻鬆地与朋友分享自己手机上的内容或是在企业中进行简报与...

    android 广播 receiver的讲解

    在Android系统中,广播Receiver( BroadcastReceiver )是四大组件之一,它是系统用来接收全局广播事件的组件。广播Receiver能够监听并响应系统或应用程序发送的广播Intent,即使应用本身并未处于运行状态,它也能...

    android receiver的用法.doc

    &lt;receiver android:name=".CameraButtonIntentReceiver"&gt; &lt;action android:name="android.intent.action.CAMERA_BUTTON"/&gt; &lt;/receiver&gt; ``` 上述XML配置创建了一个名为`CameraButtonIntentReceiver`的...

    android music braoadcast receiver

    在Android平台上,广播接收器(Broadcast Receiver)是四大组件之一,它是系统用来发送和接收广播消息的关键组件。在"android music broadcast receiver"这个项目中,我们可以看到开发者利用广播接收器来实现音乐...

    Android新手Broadcast Receiver简单实现

    本教程将引导Android新手一步步实现Broadcast Receiver。 首先,我们需要创建一个新的BroadcastReceiver类。在Android Studio中,可以在项目结构中选择“New” -&gt; “Java Class”,然后命名为“MyBroadcastReceiver...

    Android白天夜晚模式切换实现

    &lt;receiver android:name=".DayNightModeReceiver"&gt; &lt;action android:name="android.intent.action.TIME_SET" /&gt; &lt;action android:name="android.intent.action.TIMEZONE_CHANGED" /&gt; &lt;/receiver&gt; ``` ...

    Citrix桌面虚拟化项目手册-Receiver客户端配置访问和证书安装.pdf

    手册分为五个部分,分别介绍Windows Receiver客户端安装配置、iPad Receiver客户端安装配置、Android Receiver客户端安装配置、Windows Receiver客户端的访问和证书安装等内容。 首先,在环境检查中,需要确保...

    android的Broadcast Receiver应用机制

    ### Android的Broadcast Receiver应用机制 #### 一、BroadcastReceiver简介 在Android开发中,四大核心组件包括:Activity、Service、BroadcastReceiver以及Content Provider。其中,BroadcastReceiver是一种特殊...

    Android应用:Broadcast的Sender和Receiver

    Android源代码 包含2个工程: 工程1:Broadcast的Sender,负责发送广播 工程2:Broadcast的Receiver,负责监听广播(2种注册方式:XML和代码动态注册),一旦监听到广播,弹出Activity,并显示广播携带的数据。 本...

    Android Auto Protocol

    由于文件中提供的信息不完整且有重复内容,我们将基于所给的文件片段尝试构建关于Android Auto Protocol的知识点。请参考以下内容: Android Auto是一种将智能手机与车载娱乐系统整合的解决方案,允许用户将手机的...

    第八章_Android广播事件处理Broadcast_Receiver

    ### 第八章 Android广播事件处理Broadcast Receiver #### 知识点一:理解Broadcast Receiver的作用与意义 在Android应用开发过程中,Broadcast Receiver是一种重要的组件,它主要用于接收来自系统或其他应用程序...

    在运行时管理Manifest Receiver

    在Android系统中,`Manifest` 文件是每个应用的核心配置文件,它包含了应用的组件(如Activity、Service、BroadcastReceiver)以及它们的相关权限等信息。在标题"在运行时管理Manifest Receiver"中,我们关注的是...

    Android-Bluetooth-Receiver:Android蓝牙状态广播接收器

    Android-蓝牙接收器Android 蓝牙传感器状态广播接收器 Android 蓝牙 sensörünün durumunu dinleyen broadcastreceiver这个接收器有哪些动作? - 英语ACTION_DISCOVERY_STARTED -&gt; 蓝牙传感器开始搜索任何设备...

    Android实例四:BroadCast_Receiver

    这篇博客"Android实例四:BroadCast_Receiver"将深入探讨如何在实际项目中使用BroadcastReceiver。 首先,我们需要了解BroadcastReceiver的基本概念。BroadcastReceiver是一个抽象类,用于接收并处理系统或应用广播...

    CitrixReceiver_4.12.zip

    1. **多平台支持**:Citrix Receiver 支持多种操作系统,包括Windows、Mac OS、iOS和Android等,确保用户在不同设备上都能无缝地继续工作。 2. **易用性**:安装文件"CitrixReceiver_4.12.exe"表明这是一个Windows...

    Android获取系统拍照程序发出的广播

    &lt;receiver android:name=".CameraBroadcastReceiver"&gt; &lt;action android:name="android.media.action.NEW_PICTURE"/&gt; &lt;data android:scheme="file" /&gt; &lt;/receiver&gt; ``` - **动态注册**:在代码中进行注册...

    Android 判断应用正在运行

    Android 判断应用正在运行 在一个应用中,或一个Service 、Receiver中判断一个应用是否正在运行,以便进行一些相关的处理。

    CitrixReceiver.zip

    Citrix Receiver是一款由Citrix公司开发的客户端软件,主要用于连接远程桌面服务、应用虚拟化以及云服务。这个软件使得用户可以在任何设备上访问他们的企业应用、数据和桌面,提供了跨平台的灵活性,支持Windows、...

    Android系统中的广播Broadcast,Receiver例子

    Android系统中的广播Broadcast,Receiver例子,可以用LogCat察看整个运行的生命周期.MainActivity界面上有两个按钮,分别是Start Counter和Stop Counter按钮,点击前者开始计数,而点击后者则停止计数。

    Android_DOC Android_DOC

    在Android DOC中,我们主要探讨的是关于Android操作系统和应用程序开发的相关知识。Android作为一个开源的移动设备平台,由Google公司领导的开放手机联盟主导开发,它为开发者提供了丰富的工具和技术,以便构建创新...

Global site tag (gtag.js) - Google Analytics