zoukankan      html  css  js  c++  java
  • 如何让自己的广播只让指定的 app 接收?

    1、自己的应用(假设名称为应用 A)在发送广播的时候给自己发送的广播添加自定义权限,假设权限名为:
    com.itheima.android.permission然后需要在应用 A 的 AndroidManifest.xml 中声明如下权限:

    <permission android:name="com.itheima.android.permission"
      android:protectionLevel="normal"></permission>
    <uses-permission android:name="com.itheima.android.permission"/>
    

    2其他应用(假设名称应用 B)如果想接收该广播,那么就必须知道应用 A 广播使用的权限。然后在应用 B
    的清单文件中如下配置:

    <uses-permission android:name="com.loaderman.android.permission"/>

    或者在应用 AndroidManifest.xml 中的<receiver>标签中进行如下配置:

    <receiver android:name="com.itheima.android.broadcastReceiver.MyReceiver"
      android:permission="com.itheima.android.permission">
        <intent-filter >
          <action android:name="com.itheima.mybroadcast"></action>
        </intent-filter>
    </receiver>
    

    每个权限通过 protectionLevel 来标识保护级别:
    normal : 低 风 险 权 限 , 只 要 申 请 了 就 可 以 使 用 ( 在 AndroidManifest.xml 中 添 加<uses-permission>标签),安装时不需要用户确认;
    dangerous:高风险权限,安装时需要用户的确认才可使用;
    signature: 只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时 (如果是申请系统权限,则需要与系统签名相同),才能将权限授给它;
    signatureOrSystem:签名相同,或者申请权限的应用为系统应用(在 system image 中)。上述四类权限级别同样可用于自定义权限中。

    如果开发者需要对自己的应用程序(或部分应用)进行访问控制,则可以通过在 AndroidManifest.xml 中添加<permission>标签,

    将其属性中的protectionLevel 设置为上述四类级别中的某一种来实现。

  • 相关阅读:
    2-5 Flutter开发环境与Android开发环境设置详解(Windows)
    2-3 Flutter开发环境与iOS开发环境设置(Mac)
    2-1 本章作业&2-2 开发系统与工具选择
    ASP.NET Core会议管理平台实战_4、参数校验、操作结果封装,注册参数配置
    ASP.NET Core会议管理平台实战_3、认证、授权表迁移
    29.镜像容器与仓库
    27.集成EFCore配置Client和API
    26.OpenIdConnect获取用户信息的两种方式
    25.ProfileService实现(调试)
    24.集成ASP.NETCore Identity
  • 原文地址:https://www.cnblogs.com/loaderman/p/6524577.html
Copyright © 2011-2022 走看看