Android 给广播接收器增加权限(permission)或signature签名权限

这篇具有很好参考价值的文章主要介绍了Android 给广播接收器增加权限(permission)或signature签名权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 普通权限

1.添加权限

        当普通广播接收器需要增加权限时,需要在广播接收器所在的AndroidManifest.xml 文件中添加权限:

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

注:我查到的资料是在广播接收器所在的AndroidManifest.xml 文件中添加permission就行了,uses-permission是添加在广播发送方的,但在我实际调试中我发现uses-permission也得加上,否则收不到广播(注意,我调试的时候广播接收器在Android源码的SystemUI中,而发送广播则是普通的app)。

2.注册广播

        如果是静态注册,则在广播接收器所在的AndroidManifest.xml 文件中,<application>标签内注册:

<receiver android:name=".com.example.MyReceiver"
        android:exported="true"
        android:permission="com.android.permission.MY_PERMISSON">
    <intent-filter>
        <action android:name="com.my.permission" />
    </intent-filter>
</receiver>

如果广播接收器是内部类的话,则使用外部类$内部类的格式。

android:exported="true" 是 AndroidManifest.xml 文件中的一个属性,用于指示一个组件(如 Activity、Service、BroadcastReceiver 或 ContentProvider)是否可以被其他应用程序或组件访问。 如果将 android:exported 设置为 true,则该组件可以被其他应用程序或组件调用,而不需要经过授权或权限检查。这通常用于提供公共 API 或服务。 但是,如果将 android:exported 设置为 false,则该组件只能被同一应用程序中的其他组件访问,而不能被其他应用程序或组件调用。这通常用于保护应用程序的私有数据或服务。 在开发应用程序时,需要小心使用 android:exported 属性,以确保不会意外地将应用程序暴露给未经授权的访问。

         如果是动态注册广播,则在onCreate()方法中注册:

    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction("com.my.permission");
    getContext().registerReceiver(new MyReceiver(), intentFilter, BROADCAST_PERMISSION, null);

其中关键点在于注册权限时传入的参数是四个。上述代码中BROADCAST_PERMISSION的就是在AndroidManifest.xml文件中自定义的权限。

private String BROADCAST_PERMISSION = "com.android.permission.MY_PERMISSON"

上述两种方法中各选一种注册方式即可。

3.发送广播:

        只需要send的时候带上接收广播需要的权限就好了。

int broadcast = 0;
Intent intent = new Intent();
intent.setAction("com.my.permission");
intent.putExtra("my broadcast", broadcast);
sendBroadcast(intent, "com.android.permission.MY_PERMISSION");

二.签名权限

1.增加权限

       增加android:protectionLevel="signature"即可:

<uses-permission android:name="com.android.permission.MY_PERMISSON"/>
<permission android:name = "com.android.permission.MY_PERMISSONT"
    android:protectionLevel="signature"/>

        注册方式和发送广播的方式都不需要做改动。

        在我调试的过程中,我发现,如果是静态注册的方式注册广播,那么增加签名限制时不能使用内部类,否则SystemUI会崩溃,如果要使用内部类,则需要将类写为static类。而动态注册则没有这个问题。

        本帖子略过了如何写广播接收器,请自行根据需求写。

2.给应用签名

        在AndroidStudio中,点击build>Generate Signed Bundle/APK,根据需要选择对应选项:

android 广播权限,android

然后导入需要的签名文件,输入密码:

 android 广播权限,android

点击next等待build成功即可。 

如有错误请指正。文章来源地址https://www.toymoban.com/news/detail-730584.html

到了这里,关于Android 给广播接收器增加权限(permission)或signature签名权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 罗技鼠标使用接收器和电脑重新配对

    罗技的鼠标出厂的时候,默认的是将通道一设置为接收器配对,在后面如果把通道一改为了蓝牙配对,那之前的接收器配对的连接就断开了。如果后面再想改为接手机配对的话,就需要借助罗技官方的软件进行手动配对了 到这里下载Unifying软件 support.logi.com/hc/zh cn/articles/360

    2024年02月03日
    浏览(25)
  • stm32---用外部中断实现红外接收器

    红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传 输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是 家用电器广泛采用,并越来越多的应用到计算机系统中。 红外遥控通信系统一般由红外发射装置和红外接收设备两大部分组成 (1) 红

    2024年02月10日
    浏览(19)
  • 小技巧:罗技一个接收器连接多个鼠标或键盘

    安装Logitech Unifying™ 优联软件: 最多可以将六个罗技 Unifying™ 优联无线鼠标或键盘连接至一只小巧又节省空间的 Unifying 优联 USB 接收器。 Unifying Software – Logitech 支持 + 下载 Unifying Software More https://support.logi.com/hc/zh-cn/articles/360025297913

    2024年02月11日
    浏览(186)
  • ikbc键盘2.4G接收器丢失,重新对码

    我的键盘:ikbc W200 1.键盘关掉重开; 2.新接收器插在电脑上; 3.电脑上打开软件,点开始对码,一会就连接上了。 对码软件放在这里:  我用夸克网盘分享了「IKBC 对码.rar」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链

    2024年02月16日
    浏览(132)
  • 罗技m330更换接收器(通过重新对码的方式)

    下载安装SetPoint驱动:https://support.logi.com/hc/zh-cn/articles/360025141274 在罗技setpoint驱动的安装目录里找到Connectutility.exe 将鼠标的开关关闭,再打开,完成配对。 本文方法来源: 无线鼠标更换接收器后怎样才能使用,需要对码吗?具体步骤是怎样的? - 知乎

    2024年02月11日
    浏览(31)
  • 罗技MX Keys从蓝牙连接切换为优联(无线接收器)连接

    不知道什么原因用最近MX Keys蓝牙连接mac怪卡的,按一个键按四五下电脑上才有反应。于是还是想用无线接收器连接来控制电脑。 按照壳子上按 fn+o 来切换好像不太管用。。。 于是试了很久,最后用罗技自家的键盘管理软件切换上了。 先下一个Logi Options+。 下载链接:https:

    2024年02月11日
    浏览(40)
  • 普通人也能看懂WiFi接收器怎么用的使用手册

    一般家庭或者办公场合中,仅配备一到两个的WiFi网络,就有可能造成与距离区域的人在使用wifi的时候出现网速较慢,加载卡顿的现象。WiFi接收器能够帮助原有是WiFi信号扩大他的覆盖范围,还能够提高网络速度。 如何将WiFi接收器连接到电脑: 首先,将WiFi接收器连接到电脑

    2024年02月04日
    浏览(43)
  • 用FPGA实现四通道、全频率 GNSS RF 接收器-用于卫星的精确定位

    全球导航卫星系统(英文:Global Navigation Satellite System,GNSS ),又称全球卫星导航系统,是能在地球表面或近地空间的任何地点为用户提供全天候的3维坐标和速度以及时间信息的空基无线电导航定位系统。其包括一个或多个卫星星座及其支持特定工作所需的增强系统。 全球

    2024年02月04日
    浏览(30)
  • 无线键盘有几种连接方式?(USB接收器连接(无线2.4g)、蓝牙连接、wi-fi连接、红外线连接)

    无线键盘有以下几种连接方式: 通过USB接收器连接(无线2.4g):无线键盘通过USB接收器与电脑连接,一般需要插入电脑的USB接口,然后通过无线信号与键盘进行通信。 蓝牙连接:无线键盘通过蓝牙与电脑或其他设备连接,需要在电脑或设备上开启蓝牙功能,并进行配对。

    2024年02月08日
    浏览(40)
  • Arduino Uno零基础入门学习笔记——智能时钟(可以显示温湿度)【LCD1602+DS1302+温湿度传感器+红外接收器+LED+蜂鸣器】

    需要以下几个外设 LCD1602(IIC驱动) DS1302 1-WIRE温湿度检测器 红外接收器 遥控器 两个LED(一红一蓝) 蜂鸣器 LCD1602IIC引脚 Arduino引脚 VCC 5V GND GND SDA A4 SCL A5 我这里的LCD1602是IIC的,所以只需要4根线 传感器引脚 Arduino引脚 - GND S 8 + 5V 中间的线是要接5V的 红外接收器引脚 Arduino引脚 -

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包