十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍Android 中怎么在有序广播中添加自定义权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站公司2013年成立,先为浦北等服务建站,浦北等地企业,进行企业商务咨询服务。为浦北企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。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就行,如果不按照这个格式,那么这个权限可能没法使用。
然后使用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 中怎么在有序广播中添加自定义权限就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。