Android Broadcast 和 BroadcastReceiver的权限限制
在Android应用开发中,有时会遇到以下两种情况,
1. 一些敏感的广播并不想让第三方的应用收到 ;
2. 要限制自己的Receiver接收某广播来源,避免被恶意的同样的ACTION的广播所干扰。
在这些场景下就需要用到广播的权限限制。
第一种场景: 谁有权收我的广播?
在这种情况下,可以在自己应用发广播时添加参数声明Receiver所需的权限。
首先,在Androidmanifest.xml中定义新的权限RECV_XXX,例如:
- <permission android:name = "com.android.permission.RECV_XXX"/>
然后,在Sender app发送广播时将此权限作为参数传入,如下:
- sendBroadcast("com.android.XXX_ACTION", "com.android.permission.RECV_XXX");
这样做之后就使得只有具有permission权限的Receiver才能接收此广播要接收该广播,在Receiver应用的AndroidManifest.xml中要添加对应的RECV_XXX权限。
例如:
- <uses-permission android:name="com.android.permission.RECV_XXX"></uses-permission>
第二种场景: 谁有权给我发广播?
在这种情况下,需要在Receiver app的<receiver> tag中声明一下Sender app应该具有的权限。
首先同上,在AndroidManifest.xml中定义新的权限SEND_XXX,例如:
- <permission android:name="com.android.SEND_XXX"/>
然后,在Receiver app的Androidmanifest.xml中的<receiver>tag里添加权限SEND_XXX的声明,如下:
- <receiver android:name=".XXXReceiver"
- android:permission="com.android.permission.SEND_XXX">
- <intent-filter>
- <action android:name="com.android.XXX_ACTION" />
- </intent-filter>
- </receiver>
这样一来,该Receiver便只能接收来自具有该send_permission权限的应用发出的广播。
要发送这种广播,需要在Sender app的AndroidManifest.xml中也声明使用该权限即可,如下:
- <uses-permission android:name="com.android.permission.SEND_XXX"></uses-permission>
如此,可以用来对广播的来源与去处进行简单的控制。同样,对Activity 和 ContentProvider的访问权限控制也类似。
转载于:https://www.cnblogs.com/helinzi/p/5167087.html
Android Broadcast 和 BroadcastReceiver的权限限制相关推荐
- 【Android Broadcast】BroadcastReceiver
作为安卓中的四大组件广播的作用也是非常大的,听名字我们或许就知道他的功能啦!接下来就回顾.总结下这个重要的组件. 一.简介 1.分类 广播发送者:发送广播,发布广播后,订阅过的接收者就可以接收到广播. ...
- Android Broadcast Security
0x00 科普 Broadcast Recevier 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件.很多广播是源自于系统代码的──比如,通知时区改变.电池电量低.拍摄了一张照片或者用户 ...
- Android四大组件---BroadcastReceiver
前言: BroadcastReceiver(广播接收器),属于 Android 四大组件之一 在 Android 开发中,BroadcastReceiver 的应用场景非常多 今天,我将详细讲解关于B ...
- Android——广播(BroadcastReceiver)
1. 简介 BroadcastReceiver (广播接收器),属于Android四大组件之一 Android 广播分为两个角色:广播发送者.广播接收者 用于监听 / 接收 应用发出的广播消息,并做出 ...
- Android开发之BroadcastReceiver
Android开发之BroadcastReceiver BroadcastReceiver介绍 广播的种类 标准广播(Normal Broadcast) 有序广播(Ordered Broadcast) ...
- Android : Broadcast
Broadcast是Application之间交换数据最简单的一种方法. Broadcast组成部分 Broadcast 功能,由发送Broadcast的Sender和接收的Receiver组成. S ...
- android Broadcast学习
android Broadcast学习 其实所谓的静态注册,动态注册,是指接收广播的时候,是静态注册接收还是动态注册接收,发送的时候不分静态,动态 以发送intent为例, 一共分4种情况,以每次注册 ...
- Android Broadcast详解
在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver 活动(Activity) - 用于表现功能 服务(Service ...
- Android详细教程(基础篇):二十八、Android 广播机制BroadcastReceiver
广播机制(BroadcastReceiver) 11.1. BroadcastReceiver简介 在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向.而这种等 ...
最新文章
- 用python编程代码画图形_python编程:如何使用python代码绘制出哪些常见的机器学习图像?...
- 分布式架构的session问题
- Python(7)-程序执行的原理
- php 字母数字混合排序,JavaScript_基于JS实现数字+字母+中文的混合排序方法,在上篇文章给大家介绍了JavaScr - phpStudy...
- 在Objective-C中分类对象和方法
- suse linux操作系统安全加固(服务关闭)
- Java中getclass(),class()与iinstanceof的区别与联系
- linux下类似Bus Hound的工具
- 2020年最新-Java集合面试题
- AlphaBlend 详解
- 51系列单片机IO模试设置
- 爬取B站20万+条弹幕,我学会了如何成为B站老司机
- lol8月21号服务器维护,8月21日lol维护公告最新 8.21lol维护到几点
- 安装kubernetes dashboard时开发环境,运行gulp local-up-cluster任务一直显示wating for a heapster
- 能修改IE地址栏关键字键入搜索的默认搜索引擎?
- MSAA,SSAA,CSAA,CFAA...如何正确地为您的游戏设置抗锯齿模式
- (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
- level2--writeup
- 173:vue+openlayers:解决国内openstreetmap地图加载不出来的问题(代码示例)
- 后端逆袭,一份不可多得的PHP学习指南