返回顶部
首页 > 资讯 > 移动开发 >Android 给广播接收器增加权限(permission)或signature签名权限
  • 173
分享到

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

android 2023-09-27 07:09:16 173人浏览 泡泡鱼
摘要

一. 普通权限 添加权限         当普通广播接收器需要增加权限时,需要在广播接收器所在的AndroidManifest.xml 文件中添加权限: 注:我查到的资料是在广播接收器所在的AndroidManifest.

一. 普通权限

添加权限

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

        

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

注册广播

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

                

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

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"

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

发送广播:

        只需要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");

二.签名权限

增加权限

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

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

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

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

给应用签名

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

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

 

点击next等待build成功即可。 

如有错误请指正。

来源地址:https://blog.csdn.net/weixin_52465385/article/details/131052222

--结束END--

本文标题: Android 给广播接收器增加权限(permission)或signature签名权限

本文链接: https://lsjlt.com/news/419293.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作