广播接收者--BroadcastReceiver

2024-05-11 22:38

本文主要是介绍广播接收者--BroadcastReceiver,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

android应用程序的四个重要的组件 :(所有组件的要使用都要在androidManifest.xml中配置)
1. activity   ui界面的展现
2. content provider  内容提供者 暴露自己应用私有的数据给别的应用程序
3. broadcast receiver  广播接受者.
4. service  后台服务.  长期在后台运行, 没有用户界面的一个组件.


在android系统里面有很多内置的广播事件
1. 电池电量低.
2. 短信到来了
3. 电话拨打出去了
4. sd卡被插进来了.
5. 屏幕锁屏了.
6. 手机重启了.



广播接收者(BroadcastReceiver)用于接收广播 Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收,这个特性跟JMS中的Topic消息接收者类似。要实现一个广播接收者方法如下:

第一步:继承BroadcastReceiver,并重写onReceive()方法。
public class IncomingSMSReceiver extends BroadcastReceiver {
     @Override public void onReceive(Context context, Intent intent) {
     }
}

第二步:订阅感兴趣的广播Intent,订阅方法有两种:
第一种:使用代码进行订阅
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);

第二种:在AndroidManifest.xml文件中的<application>节点里进行订阅:
<receiver android:name=".IncomingSMSReceiver">
    <intent-filter>
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
</receiver>





----------------------------------------------------------------------------------------------

ip拨号器:



public class MainActivity extends Activity {

      
       private EditText  et_ipnumber ;
       private SharedPreferences  sp ;
      
       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super .onCreate(savedInstanceState);
            setContentView(R.layout. activity_main );
            
             et_ipnumber =(EditText) findViewById(R.id. et_ipnumber );
             sp =getSharedPreferences( "config" , MODE_PRIVATE );
      }
      
      
       /**
       * 设置 ip
       */
       public void click(View view){
            
            String ipNumber= et_ipnumber .getText().toString().trim();
            
             //将ipnumber 方法sp存储器中
            Editor edit = sp .edit();
            edit.putString( "ipNumber" , ipNumber);
            edit.commit();
            
            
      }
      
      

}


------------------------------------------------------------------------------------------




public class OutCallReceiver extends BroadcastReceiver {

       /**
       * 根据AndroidManifest.xml中配置一拨打电话就调用该方法
       */
       @Override
       public void onReceive(Context context, Intent intent) {
            
             //创建sp ,拿到存储器中的数据
            SharedPreferences  sp=context.getSharedPreferences( "config" ,context. MODE_PRIVATE );
            String ipNumber = sp.getString( "ipNumber" , "" );
            
            String number = getResultData();    //获取拨打的号码
            setResultData(ipNumber+ number);   //重新设置要拨打的电话
            
            
      }

}




  <!--广播接收者配置(设置广播频道)  -->
          < receiver android:name = "com.itheima.ipdail.OutCallReceiver" >
              < intent-filter >
                  < action android:name = "android.intent.action.NEW_OUTGOING_CALL" />
                
                 
              </ intent-filter >
             
             
          </ receiver >













这篇关于广播接收者--BroadcastReceiver的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980852

相关文章

第一行代码学习笔记:关于BroadcastReceiver的实现方式

第一行代码学习笔记:关于BroadcastReceiver的实现方式 方法1 动态注册方法2 发送广播时设置intent.setComponent方法3 发送广播时设置intent.addFlags 最近在学习郭霖大神的第一行代码第二版,在进行自定义广播部分的实例练习时发现点击按钮后未能接收到广播消息,经过代码排查和度娘查询才知道原来是8.0版本开始已经不支持大部分的静态注册广播

android面试:如何理解 Android 中的广播?

在 Android 中,广播是一种用于在应用程序之间传递消息的机制。它允许应用程序发送和接收全局消息,通常用于通知其他应用或组件某些事件的发生。广播可以是系统广播(由系统发送)或自定义广播(由应用程序发送)。 广播的主要特点: 异步通信:广播是一种异步的通信方式,发送广播的应用不需要等待接收应用的响应。 全局可见:广播可以被系统中的任何应用程序接收,适合用于跨应用的消息传递。 轻量级:广播

Android 接收系统广播,开机启动Service,SMS,Battery

本文内容摘自《疯狂Android讲义 第3版》李刚 著 自动开启的Service: package shortcut.song.com.myapplication;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;im

Android Ordered Broadcast 有序广播

代码设置IntentFilter: IntentFilter intentFilter = new IntentFilter();intentFilter.setPriority(15);intentFilter.addAction("shortcut.song.com.myapplication.MY_BROADCAST");intentFilter.addCategory

Android BroadcastRecevier广播消息

代码注册Receiver @Overrideprotected void onCreate(Bundle savedInstanceState) {IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("");MyBroadcast myBroadcast = new MyBroadcast();regi

2024全球广播摄像机市场前景如何?IP网络化云端融合趋势加强

一、前言 当前,全球广播电视用户持续向流媒体迁移。大多数国家广播电视台推出独立流媒体平台,流媒体趋势日渐加强。与奈飞等非广电系流媒体平台只提供点播服务不同,广电系流媒体平台一般提供电视频道直播服务、电视回看服务、视频点播服务,与传统电视渠道形成互补,而这些流媒体平台与网络媒体平台所能提供的视频服务存在着非常重合的区域。 (1)流媒体时代加速广播摄像机专业影视化发展 全球广电系流媒体平台竞争力

单播、广播、多播

单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在? 1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上

RocketMQ广播消费消息

1、 基础概念 RocketMQ 支持两种消息模式:集群消费( Clustering )和广播消费( Broadcasting )。 集群消费模式(Cluster): 在集群消费模式下,同一个消费者组(Consumer Group)中的每个消费者都会消费消息的一个副本。消息会被分发到不同的消费者实例上,但是同一个消息只会被同一个消费者组中的一个消费者消费。 广播消费模式(Broadcast)

IOS消息分发(广播)机制

在IOS中,提供了通知机制(Notification),可以在对象间传递和接受信息。传递和接受信息的对象间甚至不需要知道对方的存在。究其本质来说,其实是设计模式中的观察者模式的应用。 通知机制 设想这么一个场景:我开发了一款pdf阅读器,当手机上的另一个App打开pdf文件时,通过Open in,选择我的pdf阅读器打开。这时候我的pdf阅读器会被lanuch,同时在其App deleg

神奇的android广播

最近用了android的广播,个人感觉非常好用: 首先在你要接收的地方注册一个: context.registerReceiver(myReceiver, new IntentFilter("com.shic.action.d")); 然后就是定义注册的这个,在接收到广播后执行的操作: BroadcastReceiver myReceiver = new BroadcastRecei