BroadcastReceiver与自定义权限

本文探讨了自定义权限的声明与使用,特别是在BroadcastReceiver中的应用。通过设定`protectionLevel`,可以控制权限级别,如`normal`、`dangerous`和`signature`。当BroadcastReceiver注册在清单文件中时,可通过`android:exported="false"`防止外部访问。对于动态注册的receiver,使用`signature`级别权限确保仅同签名应用才能触发。同时,介绍了有序广播的特点和功能。
摘要由CSDN通过智能技术生成

自定义权限

        在清单文件中通过<permission>进行声明,然后通过<uses-permission>引用自己声明的权限(可不引用)。示例:

    <!-- 引用自己声明的权限 -->
    <uses-permission android:name="com.baigle.imitatehandler.TEST" />
	<!-- 声明自定义权限 -->
    <permission
        android:name="com.baigle.imitatehandler.TEST"
        android:protectionLevel="signature" />

protectionLevel

        在自定义权限时,通常会指定protectionLevel属性,常用的如下:

        normal:默认的,应用安装前,用户可以看到相应的权限,但无需用户主动授权。

        dangerous:normal安全级别控制以外的任何危险操作。需要dangerous级别权限时,Android会明确要求用户进行授权。常见的如:网络使用权限,相机使用权限及联系人信息使用权限等。

        signature:它要求权限声明应用和权限使用应用使用相同的keystore进行签名。如果使用同一keystore,则该权限由系统授予,否则系统会拒绝。并且权限授予时,不会通知用户。它常用于应用内部。例如:

    <!-- 引用自己声明的权限 ,可不引用-->
    <uses-permission android:name="com.baigle.imitatehandler.TEST" />
    <!-- 声明自定义权限 -->
    <permission
        android:name="com.baigle.imitatehandler.TEST"
        android:protectionLevel="signature" />

        <receiver
            android:name="com.baigle.imitatehandler.OtherActivity"
            android:label="@string/app_name"
            android:permission="com.baigle.imitatehandler.TEST" >
            <intent-filter>
                <action android:name="action1" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值