Android 中在有序广播中添加自定义权限的实例

前言;
有序广播说明:
有序广播因为要处理消息的处理结果,所以要复杂一些。
* sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras);
如果只是想让广播可以按优先级来收取,并不在意处理的结果,可以用下面的版本:
* sendOrderedBroadcast(Intent intent, String receiverPermission);
同样,在多用户环境下,也可以选择给哪个用户发广播:
* sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras);
首先我们要在AndroidManifest.xml中自定义一个权限,格式参考系统自带的权限,Android.permission.XXXXX,只要是xxx.peimission.XXXXXX就行,如果不按照这个格式,那么这个权限可能没法使用。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lsj.broadcasttest">
<span style="color:#FF0000;"> <permission
android:name="test.permission.TEST"
android:protectionLevel="normal"
></permission></span>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="20">
<action android:name="hahaha" />
</intent-filter>
</receiver>
<receiver
android:name=".MyReceiver2"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="19">
<action android:name="hahaha" />
</intent-filter>
</receiver>
</application>
<span style="color:#FF0000;"> <uses-permission android:name="test.permission.TEST"/></span>
</manifest>
然后使用sendOrderedBroadcast(intent,"test.permission.TEST");就可以发送有序广播了,当然发送广播之前还要指定一下接受者的优先级,优先级越高,android:priority指定的数字就越大。取值的范围是:-1000~1000这个就不详细叙述了。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button send= (Button) findViewById(R.id.send);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction("hahaha");
intent.putExtra("msg","一个简单的消息");
sendOrderedBroadcast(intent,"test.permission.TEST");
}
});
}
}
第一个BroadcastReceiver在接收到广播的时候,如果想要添加一些自己的东西进去,可以先创建一个Bundle对象,并且存入数据。
然后通过setResultExtras(bundle),把这个bundle添加到原来的消息中,
ublic class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"接收到的Intent的Action为:"+intent.getAction()+"\n消息内容是:"+intent.getStringExtra("msg"),Toast.LENGTH_LONG).show();
Bundle bundle=new Bundle();
bundle.putString("first","第一个BroadCast存入的消息!");
setResultExtras(bundle);
}
}
下一个BroadcastReceiver通过getResultExtras可以将信息提取出来。
ublic class MyReceiver2 extends BroadcastReceiver {
public MyReceiver2() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
Bundle bundle=getResultExtras(true);
String first=bundle.getString("first");
Toast.makeText(context,"第一个BroadCast存入的消息为:"+first,Toast.LENGTH_LONG).show();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 中在有序广播添加权限
# 有序广播
# Android判断是否有拍照权限的实例代码
# Android扫描二维码时出现用户禁止权限报错问题解决办法
# Android判断用户是否允许了摄像头权限实例代码
# Android无需申请权限拨打电话的两种方式
# Android.permission.MODIFY_PHONE_STATE权限问题解决办法
# 详解Android权限管理之Android 6.0运行时权限及解决办法
# Android权限管理之Permission权限机制及使用详解
# Android6.0动态申请权限所遇到的问题小结
# Android 中的危险权限详细整理
# 第一个
# 自定义
# 自己的
# 就不
# 可以用
# 要在
# 就行
# 希望能
# 越大
# 想让
# 可以选择
# 谢谢大家
# 越高
# 多用户
# 创建一个
# 就可以
# 系统自带
# 只要是
# allowBackup
相关文章:
PHP正则匹配日期和时间(时间戳转换)的实例代码
建站之星如何取消后台验证码生成?
网页设计与网站制作内容,怎样注册网站?
内网网站制作软件,内网的网站如何发布到外网?
如何在服务器上配置二级域名建站?
网站制作员失业,怎样查看自己网站的注册者?
C#怎么使用委托和事件 C# delegate与event编程方法
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何在阿里云完成域名注册与建站?
活动邀请函制作网站有哪些,活动邀请函文案?
如何获取上海专业网站定制建站电话?
安云自助建站系统如何快速提升SEO排名?
html制作网站的步骤有哪些,iapp如何添加网页?
如何在西部数码注册域名并快速搭建网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何在万网开始建站?分步指南解析
建站之星在线客服如何快速接入解答?
如何在Golang中使用replace替换模块_指定本地或远程路径
,交易猫的商品怎么发布到网站上去?
学校建站服务器如何选型才能满足性能需求?
建站之星安装后如何自定义网站颜色与字体?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何快速搭建支持数据库操作的智能建站平台?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何快速上传自定义模板至建站之星?
平台云上自助建站如何快速打造专业网站?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何选择高效稳定的ISP建站解决方案?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何注册花生壳免费域名并搭建个人网站?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何在宝塔面板中创建新站点?
如何用美橙互联一键搭建多站合一网站?
如何选择PHP开源工具快速搭建网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
网站专业制作公司有哪些,做一个公司网站要多少钱?
专业商城网站制作公司有哪些,pi商城官网是哪个?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
建站主机解析:虚拟主机配置与服务器选择指南
制作农业网站的软件,比较好的农业网站推荐一下?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
定制建站流程解析:需求评估与SEO优化功能开发指南
表情包在线制作网站免费,表情包怎么弄?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
智能起名网站制作软件有哪些,制作logo的软件?
nginx修改上传文件大小限制的方法
如何有效防御Web建站篡改攻击?
如何续费美橙建站之星域名及服务?
*请认真填写需求信息,我们会在24小时内与您取得联系。