Android中如何在有序广播中添加自定义权限
Android中如何在有序广播中添加自定义权限
本文小编为大家详细介绍“Android中如何在有序广播中添加自定义权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android中如何在有序广播中添加自定义权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
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就行,如果不按照这个格式,那么这个权限可能没法使用。
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.example.lsj.broadcasttest"><span><permissionandroid:name="test.permission.TEST"android:protectionLevel="normal"></permission></span><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><receiverandroid:name=".MyReceiver"android:enabled="true"android:exported="true"><intent-filterandroid:priority="20"><actionandroid:name="hahaha"/></intent-filter></receiver><receiverandroid:name=".MyReceiver2"android:enabled="true"android:exported="true"><intent-filterandroid:priority="19"><actionandroid:name="hahaha"/></intent-filter></receiver></application><span><uses-permissionandroid:name="test.permission.TEST"/></span></manifest>
然后使用sendOrderedBroadcast(intent,"test.permission.TEST");就可以发送有序广播了,当然发送广播之前还要指定一下接受者的优先级,优先级越高,android:priority指定的数字就越大。取值的范围是:-1000~1000这个就不详细叙述了。
publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Buttonsend=(Button)findViewById(R.id.send);send.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent();intent.setAction("hahaha");intent.putExtra("msg","一个简单的消息");sendOrderedBroadcast(intent,"test.permission.TEST");}});}}
第一个BroadcastReceiver在接收到广播的时候,如果想要添加一些自己的东西进去,可以先创建一个Bundle对象,并且存入数据。
然后通过setResultExtras(bundle),把这个bundle添加到原来的消息中,
ublicclassMyReceiverextendsBroadcastReceiver{publicMyReceiver(){}@OverridepublicvoidonReceive(Contextcontext,Intentintent){Toast.makeText(context,"接收到的Intent的Action为:"+intent.getAction()+"\n消息内容是:"+intent.getStringExtra("msg"),Toast.LENGTH_LONG).show();Bundlebundle=newBundle();bundle.putString("first","第一个BroadCast存入的消息!");setResultExtras(bundle);}}
下一个BroadcastReceiver通过getResultExtras可以将信息提取出来。
ublicclassMyReceiver2extendsBroadcastReceiver{publicMyReceiver2(){}@OverridepublicvoidonReceive(Contextcontext,Intentintent){//TODO:ThismethodiscalledwhentheBroadcastReceiverisreceivingBundlebundle=getResultExtras(true);Stringfirst=bundle.getString("first");Toast.makeText(context,"第一个BroadCast存入的消息为:"+first,Toast.LENGTH_LONG).show();}}
读到这里,这篇“Android中如何在有序广播中添加自定义权限”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能