【移动应用开发技术】Android 中怎么在有序广播中添加自定义权限_第1页
【移动应用开发技术】Android 中怎么在有序广播中添加自定义权限_第2页
【移动应用开发技术】Android 中怎么在有序广播中添加自定义权限_第3页
【移动应用开发技术】Android 中怎么在有序广播中添加自定义权限_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

【移动应用开发技术】Android中怎么在有序广播中添加自定义权限

这篇文章给大家介绍Android中怎么在有序广播中添加自定义权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android中在有序广播中添加自定义权限的实例有序广播说明:有序广播因为要处理消息的处理结果,所以要复杂一些。*sendOrderedBroadcast(Intentintent,StringreceiverPermission,BroadcastReceiverresultReceiver,Handlerscheduler,intinitialCode,StringinitialData,BundleinitialExtras);如果只是想让广播可以按优先级来收取,并不在意处理的结果,可以用下面的版本:*sendOrderedBroadcast(Intentintent,StringreceiverPermission);同样,在多用户环境下,也可以选择给哪个用户发广播:*sendOrderedBroadcastAsUser(Intentintent,UserHandleuser,StringreceiverPermission,BroadcastReceiverresultReceiver,Handlerscheduler,intinitialCode,StringinitialData,BundleinitialExtras);首先我们要在AndroidManifest.xml中自定义一个权限,格式参考系统自带的权限,Android.permission.XXXXX,只要是xxx.peimission.XXXXXX就行,如果不按照这个格式,那么这个权限可能没法使用。<?xml

version="1.0"

encoding="utf-8"?>

<manifest

xmlns:android="/apk/res/android"

package="com.example.lsj.broadcasttest">

<span

>

<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="ent.action.MAIN"

/>

<category

android:name="ent.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

>

<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.getS

温馨提示

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

评论

0/150

提交评论