Android 广播的那些 注意点

Android 广播的那些 注意点,第1张

概述目录1.广播的权限2.广播的限制1.广播的权限​ 我们在发送广播和接收广播的时候都是可以带上权限的​ 1.对于发送:sendBroadcast("com.android.XXX_ACTION","com.android.permission.RECV_XXX");​ 第二个参数permission代表的是谁能接收我的广播,也就是待接收方在Andr

目录1. 广播的权限2. 广播的限制

1. 广播的权限

​ 我们在发送广播和接收广播的时候都是可以带上权限的

​ 1. 对于发送:

sendbroadcast("com.androID.XXX_ACTION", "com.androID.permission.RECV_XXX");

​ 第二个参数permission代表的是 谁能接收我的广播,也就是 待接收方在AndroIDManifest.xml声明这个权限后,才有资格接收这个广播

对于接收

	receiver androID:name=".receiver.IFlytekMessageReceiver"            androID:enabled="true"            androID:exported="true"            androID:permission="iauto.permission.EXECUTE_VR_ACTION">            <intent-filter>                <action androID:name="com.iflytek.autofly.handMessage" />            </intent-filter>        </receiver>

里面的androID:permission 代表谁可以给我发送广播?,也就是 待发送方 必须 在AndroIDManifest.xml声明这个权限后,才有资格发送这个广播

权限可以声明,那是哪里定义的呢?
定义权限:
既然可以声明使用某个权限,那么肯定某个地方定义了这个权限

安全的发送广播方式
发送方
使用mContext.sendbroadcast(intent, VrMsgDef.VR_SENDbroADCAST_PERMISSION);
第二个参数代表必须有VrMsgDef.VR_SENDbroADCAST_PERMISSION权限的应用才能接收这个广播
然后需要声明
这个声明是因为接收方的
receiver androID:name=".receiver.IFlytekMessageReceiver"
androID:enabled="true"
androID:exported="true"
androID:permission="iauto.permission.EXECUTE_VR_ACTION">
要求发送方具有的权限
接受方

因为发送方的sendbroadcast,所以有这个权限
receiver androID:name=".receiver.IFlytekMessageReceiver"
androID:enabled="true"
androID:exported="true"
androID:permission="iauto.permission.EXECUTE_VR_ACTION">
要求发送方具有的权限

2. 广播的限制

对于静态注册的广播:

AndroID 8 中 默认的action 设置 已经无法实现发送

​ 发送方需要达到下面其中的条件:

1. 调用setPackage 指定接收的模块组件包的名称2. 调用setComponent指定接收模块组件包的名称和 receiver的名称,(需要是全路径)3. 成为前台广播,intent.setFlags(Intent.FLAG_RECEIVER_FOREGROUND); **默认的广播都是后台的**

对于 动态注册的广播

可以使用setPackage 或者 setComponent 指定想要发送组件(非强制)

总结

以上是内存溢出为你收集整理的Android 广播的那些 注意点全部内容,希望文章能够帮你解决Android 广播的那些 注意点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存