【移动应用开发技术】Android Broadcast 和 BroadcastReceiver的权限限制方式_第1页
【移动应用开发技术】Android Broadcast 和 BroadcastReceiver的权限限制方式_第2页
【移动应用开发技术】Android Broadcast 和 BroadcastReceiver的权限限制方式_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】AndroidBroadcast和BroadcastReceiver的权限限制方式

在Android应用开发中,有时会遇到以下两种情况,1.一些敏感的广播并不想让第三方的应用收到;2.要限制自己的Receiver接收某广播来源,避免被恶意的同样的ACTION的广播所干扰。在这些场景下就需要用到广播的权限限制。第一种场景:谁有权收我的广播?在这种情况下,可以在自己应用发广播时添加参数声明Receiver所需的权限。首先,在Androidmanifest.xml中定义新的权限RECV_XXX,例如:

<permissionandroid:name="com.android.permission.RECV_XXX"/>

<permissionandroid:name="com.android.permission.RECV_XXX"/>然后,在Senderapp发送广播时将此权限作为参数传入,如下:

sendBroadcast("com.android.XXX_ACTION","com.android.permission.RECV_XXX");

sendBroadcast("com.android.XXX_ACTION","com.android.permission.RECV_XXX");这样做之后就使得只有具有RECV_XXX权限的Receiver才能接收此广播要接收该广播,在Receiver应用的AndroidManifest.xml中要添加对应的RECV_XXX权限。例如:

<uses-permissionandroid:name="com.android.permission.RECV_XXX"></uses-permission>

<uses-permissionandroid:name="com.android.permission.RECV_XXX"></uses-permission>第二种场景:谁有权给我发广播?在这种情况下,需要在Receiverapp的<receiver>tag中声明一下Senderapp应该具有的权限。首先同上,在AndroidManifest.xml中定义新的权限SEND_XXX,例如:

<permissionandroid:name="com.android.SEND_XXX"/>

<permissionandroid:name="com.android.SEND_XXX"/>然后,在Receiverapp的Androidmanifest.xml中的<receiver>tag里添加权限SEND_XXX的声明,如下:这样一来,该Receiver便只能接收来自具有该SEND_XXX权限的应用发出的广播。要发送这种广播,需要在Senderapp的AndroidManifest.xml中也声明使用该权限即可,如下:

<uses-permissionandroid:name="com.android.permission.SEND_XXX"></uses-permission>

<uses-permissionandroid:name="com.android.permission.SEND_XXX"></uses-permission>如此,可以用来对广播的来源与去处进行简单的控制。同样,对Activity和ContentProvider的访问权限控制也类似。

补充知识:Android发送权限受限的广播,指定接受方!本文实践代码是在Android7.1上的系统级源码上验证通过的。1.首先是发送方:在frameworks\base\core\res\AndroidManifest.xml中定义权限在代码需求的地方发出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论