全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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就行,如果不按照这个格式,那么这个权限可能没法使用。

<?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小时内与您取得联系。