首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android-浅谈广播机制,实现强制下线功能

首先,复习一下,什么是广播呢? 顾名思义,广播就像我们上学的时候每个班级里的喇叭一样,这些喇叭都是接入到学校的总的一个地方,比如说广播室啊什么的。一旦有什么通知,就会播放一条让全校师生都知道的广播。...为了便于进行系统级别的消息通知Android也有自己的一套类似的广播消息机制。...Android也有一套完整的api,允许应用自由的发送和接收广播,发送广播所采用的就是Intent,而接收广播所采用的就是广播接收器。...优先级别高的广播接收器就可以先接收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法接收到广播消息了。...} }); } 同样也很简单,这里我们给按钮注册了个监听事件,并且在点击事件里发送了一条广播广播的值为com.example.xiaxian,这条广播就是通知程序强制用户下线的

83730

Android基础总结(10)——手机多媒体的运用:通知、短信、相机、视频播放

1、通知的使用 通知(Notification)是Android中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。...无论在哪里创建通知,整体的步骤都是相同的,具体的步骤如下: 创建一个NotificationManager类的对象来对通知进行管理,这里可以通过Context的getSystemService(Context.NOTIFICATION_SERVICE...这样我们发送通知的功能就完成了。 1 manager.notify(1,notification); 最后,我们可以通过PendingIntent来实现点击通知后的效果。...这一功能实际上很简单,只用调用SmsManager的sendTextMessage()方法就可以将短信发送出去,当然,这个方法接收好几个参数,具体的有电话号码,短信内容,等等,当然,我们还可以通过注册一个广播接收器获取短信发送成功还是失败...,详细的用法参见: android中发送短信 接收短信:实际上,每当有短信到来时,系统会接收到一条相应的广播,所以对于接收短信的功能,我们只需要实现一个广播接收器就可以了,在重写onReceive()方法中来处理接收到的信息

2K80
您找到你想要的搜索结果了吗?
是的
没有找到

Broadcasts详解「建议收藏」

应用程序也可以发送自定义广播,例如,通知其他应用程序他们关注的事件(如数据下载完成)。 应用程序可以注册广播接收器。当广播被发送时,系统自动将广播传递到已注册接收该广播的应用程序。...广播消息被封装在一个Intent对象中,用Action字符串标识所发生的事件(例如android.intent.action.AIRPLANE_MODE)。...接收器运行的顺序可以通过IntentFilter的android:priority属性来控制;具有相同优先级的接收器将以任意顺序运行。...; sendBroadcast(intent); 广播消息被封装在一个Intent对象中。Intent的Action字符串必须以应用程序的java包名为前缀并且能唯一标识这个广播事件。...7、不要从广播接收器中启动一个Activity,因为这样做的用户体验是不和谐的,特别是如果有多个接收器的话。相反,可以考虑显示通知

73210

《移动互联网技术》第八章 消息与服务:掌握不同类型广播监听方式,以及创建通知的方法

应用要接收系统发送的消息,就像打开一个收音机,然后收听这些广播,从广播获取系统的各种状态信息,比如接听到一个电话、收到一条短信、获取手机开机信息等等。...android:enabled="true"表示是否启用这个广播接收器android:exported="true"表示这个广播接收器能否接收其他APP发出的广播。...使用有序广播,在某一个时刻只有一个接收器收到消息,它处理完消息以后,再把消息发送给下一个接收器。收听广播的顺序由接收器的优先级来确定。接收器可以截断消息,不传递,这样后面的接收器就无法获得广播消息。...现在点击这个通知,但是没有任何响应,这是因为还没有实现点击处理。...而收到通知时,用户不会立刻打开通知对应的活动界面,他们可以选择在任何时间来查看。因此,要实现通知点击处理,需要用到另外一个意图:PendingIntent。

5710

Android四大组件全面解析,夯实基础。

1.2 远程服务(Remote Service) > 该服务是独立进程,对应进程名格式为所在包名加上指定的 android:process 字符串。...1.2 有序广播(Ordered broadcasts) 是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。...所以此时的广播接收器是有先后顺序的,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播。...()),如果广播被前面的接收者终止,后面的接收者就再也无法获取广播。...动态广播:先注册得优先于后注册的。 当广播为标准广播时: 无视优先级,动态广播优先于静态广播接收器 同优先级的同类广播接收器,静态广播:先扫描的优先于后扫描的,动态:先注册的优先于后注册的。 6.

80830

17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」

使用 getStringExtra 函数获取广播的原始数据,通过 getResultData 方法取得上个广播接收器自己添加的数据,并可用 abortBroadcast 方法丢弃该广播,使该广播不再被别的接收器接收到...Android v4 包中提供了 LocalBroadcastManager 类,用于统一处理 APP 局部广播,使用方式与全局广播几乎相同,只是调用注册 / 取消注册广播接收器和发送广播偶读方法时,需要通过...LocalBroadcastManager 也称为局部通知管理器,这种通知的好处是安全性高,效率也高,适合局部通信,可以用来代替 Handler 更新 UI 1.9.4 广播的安全性 Android...接受广播 注册广播接收器时,增加相应的 permission ,用于权限验证。 注册广播接收器时,设置 android:exported 的值为false。...android:name="broad.ok.receiver" /> 发送广播的时候加上权限字符串 public void click(View view) { Intent intent

1.3K31

Android】Broadcasts详解

如果想要具体了解如何如何读取一个intent并且获取附加字段,参阅Intents and Intent Filters 参阅Android SDK中的BROADCAST_ACTIONS.TXT来了解所有系统广播的...然而,一旦从onReceive()返回,广播接收器就不再处于激活状态,它的宿主进程也就跟其它的普通进程具有相同的优先级。...receiver接收的顺序可以通过intent-filter中的android:priority属性控制,具有相同接收优先级的receiver的接收顺序是随机的。...有时,Android系统会强制要求使用上下文相关的广播接收器。比如CONNECTIVITY_ACTION这个广播只会发送给上下文相关的广播接收器。 不要使用隐式intent发送敏感信息。...广播的action标志是全局的,确保action的值和其它字符串的值是在你自己的命名空间中,否则你可能会不小心与其它应用发生冲突。

71220

Android基础总结(4)——广播接收器

2、广播接收器的使用方法   Android系统内置了很多系统级别的广播,我们可以在应用程序中通过监听这些广播来得到各种系统的状态信息。...然后在广播接收器的onReceive()方法中通过getIntent()方法来获取Intent,并取出相应的数据。...发送有序广播:发送有序广播的方法和发送标准广播的方法基本相同,只是需要将最后的sendBroadcast(intent)发送方法换成sendOrderedBroadcast(intent,null)即可...这里的第二个参数是一个与权限相关的字符串。...下面的代码是创建一个广播接收器,在接收到广播后弹出一个警告对话框,并且设置该对话框不可取消,只能通过点击确定按钮来启动另一个活动页面。

1K100

安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

从安全角度来看,问题是应用 A 对同一应用中的私有接收器的调用。 当应用 A 广播隐式意图时,不仅是相同应用中的私有接收器,而且具有相同意图过滤器定义的公共接收器(B-1)也可以接收意图。...[7] 在 3.0 之前的版本中,接收器可以通过安装 App 自动启动。 4.2.3.3 私有广播接收器可以接收由相同 UID 发送的广播 应用 相同的 UID 可以提供给几个应用。...即使它是私有广播接收器,也可以接收从 UID 相同的应用发送的广播。 但是,这不会是一个安全问题。 由于可以确保 UID 相同的应用具有用于签署 APK 的一致的开发人员密钥。...另外,广播接收器发送的结果信息,可以由发送者使用有序广播接收。 SMS 接收通知广播(SMS_RECEIVED)是有序广播的代表性示例。...电池状态变化通知广播(ACTION_BATTERY_CHANGED)是粘性广播的代表性示例。 粘性有序 这是具有有序和粘性特征的广播

96910

安卓应用安全指南 4.2.2 创建使用广播接收器 规则书

4.2.2 创建/使用广播接收器 规则书 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA...通过对receiverPermission参数指定内部定义的签名权限来结束广播,需要相同的方式的验证。...4.2.2.5 使用广播发送敏感信息时,限制能收到的接收器(必需) 广播是所创建的系统,用于向未指定的大量应用广播信息或一次通知其时间。 因此,广播敏感信息需要谨慎设计,以防止恶意软件非法获取信息。...请注意,粘性广播Android 5.0(API Level 21)中已弃用。...4.2.2.9 提供二手素材时,素材应该以相同保护级别提供(必需) 当由权限保护的信息或功能素材被二次提供给其他应用时,有必要通过声明与目标应用相同的权限来维持保护标准。

79430

android学习笔记----自定义广播和系统广播

所以此时的广播接收器是有先后顺序的,优先级高的广播接收器就可以先接收到广播消息,并且前面的广播接收器还可以截断或者修改正在传递的广播,这样后面的广播无法接受到广播消息或者接收到不真实的广播消息。...广播将以与调用相同的方式序列化。sendOrderedBroadcast(Intent, String)....receiverPermission String:字符串命名接收方接收广播时必须持有的权限。如果为NULL,则不需要任何权限。...3.发送本地广播会比发送系统全局广播更高效。 系统广播广播接收器可以自由的对自己感兴趣的广播进行注册,这样当有相应的广播发出时,广播接收器就能够接收到该广播,并在内部处理相应的逻辑。...因此广播接收器更多的是扮演一种打开程序其他组件的角色。如创建一条状态栏通知,或者启动一个服务等。

1.4K20

android studio集成极光推送的操作步骤

} 第三、自定义自己的广播接收器(若是项目只需要接受通知,这一步可以忽略,一般都会有点击通知栏跳转不同界面)自定义的广播接收器:接收消息和点击等等都会到接收器 注意:这里有一个坑,不自定义,默认点击会启动应用...JPushInterface.EXTRA_EXTRA); 才可以获得自定义消息,如果直接在intent处断点查看后台推送的消息是看不到任何数据的(这个坑我弄了好久,一直以为是后台没有推送到消息);下面主要对接收推送消息、点击通知栏消息...--Required 用户接收SDK通知栏信息的intent-- <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED...--Required 用户打开自定义通知栏的intent-- <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED...这里说一个问题:我在广播接收器中log打印东西,不知什么原因一直没打印出来,我以为是广播接收不到推送,但是有通知栏提示的,搜了好多注册不成功的问题浪费了很多时间;所以自己遇到一个问题感觉没问题就想想是不是其他原因

1.5K30

谷歌大开“吃”戒的产物,Andriod O全球发布

三、在操作系统中选择 Android O,点击机型即刻体验 ? 温馨提示:注册用户即享超长云真机体验,认证用户尊享更多免费服务 “ O的新增功能中,我们根据重要性依次进行了罗列: 1....2、 通知渠道: Android O 还引入了通知渠道,这是全新的由应用定义的通知内容类别。...Android O 还向通知添加了新的视觉效果和分组,从而使用户在收到消息或查看通知栏时更容易看到通知内容。...3、检查在您应用的清单中定义的广播接收器。 如果您的清单为显式广播声明了接收器,您必须予以替换。...可能的解决方法包括: ①通过调用 Context.registerReceiver() 而不是在清单中声明接收器的方式在运行时创建接收器。 ②使用计划作业检查条件是否会触发隐式广播

87920

Android采用消息推送实现类似微信视频接听

本文实例为大家分享了Android实现类似微信视频接听的具体代码,供大家参考,具体内容如下 1、背景需求:业务需要接入视频审核功能,在PC 端发起视频通话,移动端显示通话界面点击接听后进行1对1视频通话...3、技术实现: A:编写一个广播接收器,并且在 AndroidManifest中注册,这就是一个全局的广播接收器。.../** * Created on 2018/3/29 16:19 * @author baokang.jia * 极光推送广播接收器 */ public class JiGuangPushReceiver...context, bundle); } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {//点击通知栏...ReceiveTalkActivity.startReceiveTalkActivity(context, extras,notifyId); } } } } //在AndroidManifest注册全局自定义广播接收器

2K20

使用广播-BroadcastReceiver最详细解析

男孩:Broadcast是广播的意思,在Android中应用程序之间的传输信息的机制,BroadcastReceiver是接收广播通知的组件,广播广播接收器Android中需要了解的,那么怎么样去了解呢...广播传递信息告诉我们要做什么,通知信息或传递数据等。广播接收器是用来接收来自系统和应用的广播。 在Android中提供了两种主要的类型广播:标准广播和有序广播。 什么是广播呢?...在手机的消息提示框,对话框或通知的形式告诉我们,如我们手机没电了,会弹出提示,接收短信弹出提示等。而Broadcast Receiver为广播接收器,是接收广播的组件。...在Android中提供了优先级的属性(priority)来控制先后,有序广播中可以截断广播,不被下一个广播接收器接收,这是有序广播的特点。...BroadcastReceiver的实现: 到头来还是要了解BroadcastReceiver的实现,接下来我列出主要的内容目录,对于广播接收器是我们要掌握的,是Android中重要的四大组件之一。

51220

Android基础_1 四大基本组件介绍与生命周期

Android四大基本组件分别是Activity,Service(服务),Content Provider(内容提供者),BroadcastReceiver(广播接收器)。...广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。...通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消 息。...动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。.../person,      *   那么返回的MIME类型字符串应该为"vnd.android.cursor.dir/person" * 如果操作的数据为单一数据,那么返回的类型字符串应该为

1.3K30

Android开发笔记(一百零四)消息推送SDK

推送事件的广播 极光推送的各事件都是靠广播发出来,并不使用监听器,所以我们要在app中自定义广播接收器来处理事件。...下面是在AndroidManifest.xml注册极光广播接收器的xml例子: <receiver android:name=".JpushReceiver"...即从几点到几点不接收通知。 推送事件的广播 个推也使用广播来发送事件,不过不像极光那样细分了许多事件,也需要自定义广播接收器。...不会自动展示通知栏,由开发者在广播接收器的PushConsts.GET_MSG_DATA分支中自行处理。该模板相当于极光的Message。 --LinkTemplate : 链接模板。...自动在通知栏里显示消息,点击后跳转到指定URL。 --NotyPopLoadTemplate : 下载提示模板。自动在通知栏里显示消息,点击后下载指定安装包。

1.4K10

行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案

所以如果在fragment生命周期内获取获取数据,使用replace会重复获取; 添加相同的fragment时,replace不会有任何变化,add会报IllegalStateException异常;...普通广播:开发者自身定义 intent的广播(最常用),所有的广播接收器几乎会在同一时刻接受到此广播信息,接受的先后顺序随机; 有序广播:发送出去的广播广播接收者按照先后顺序接收,同一时刻只会有一个广播接收器能够收到这条广播消息...,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递,且优先级(priority)高的广播接收器会先收到广播消息。...有序广播可以被接收器截断使得后面的接收器无法收到它; 本地广播:仅在自己的应用内发送接收广播,也就是只有自己的应用能收到,数据更加安全,效率更高,但只能采用动态注册的方式; 粘性广播:这种广播会一直滞留...,当有匹配该广播接收器被注册后,该接收器就会收到此条广播; 推荐文章:Android四大组件:BroadcastReceiver史上最全面解析(https://www.jianshu.com/p/ca3d87a4cdf3

73120

Android Intent漏洞

这可用于创建一个代理组件(活动、广播接收器或服务),该组件采用嵌入式意图并将其传递给危险方法,如startActivity()或 sendBroadcast()因此,可以强制应用启动无法直接从其他应用启动的未导出组件...不安全的广播 如果应用使用隐式Intent来传递广播,则可以使用相同的操作注册广播接收器,并从其他应用拦截用户的广播。...例如,假设消息传递服务从服务器请求新消息,并将其传递给负责在用户屏幕上显示这些消息的广播接收器: Intent intent = new Intent("com.victim.messenger.IN_APP_MESSAGE..."); intent.putExtra("from", id); intent.putExtra("text", text); sendBroadcast(intent); 由于隐式广播会传送到设备上注册的每个接收器...,因此可以跨所有应用注册以下广播接收器来拦截用户的广播: AndroidManifest.xml <intent-filter

44930
领券