Android使用自定义权限

本文介绍了Android中自定义权限的使用,用于保护特定活动,确保只有拥有相应权限的客户端才能访问。详细讲解了AndroidManifest.xml中配置自定义权限的关键参数,并提到了权限等级如normal、dangerous、signature和signatureOrSystem的含义。此外,还强调了在添加自定义权限时应注意的事项。
摘要由CSDN通过智能技术生成

**说明:**博客纯手工编写,转载或收藏请注明出处,觉得可以或支持作者的,请添加作者支付宝:872157571@qq.com(生活圈中“每天一主题”微博客更新,请求好友时请备注“csdn”)

自定义权限一般用于某个活动的访问保护,只有拥有该权限的客户端才可以访问该活动,通常自己客户端在自定义权限时已经默认拥有了权限,而其他客户端如需要访问该活动,则必须加上该活动需要的权限,权限声明在全局上。

当前客户端的AndroidManifest文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk
        android:minSdkVersion="4"
        android:targetSdkVersion="14" />
    
    <!-- permission:自定义权限标签,系统权限的定义也是使用该标签 -->
    <permission 
        android:name="custom.permission.MYACTIVITY" 
        android:protectionLevel="normal" 
        android:label="Start My Activity" 
        android:description="@string/my_activity"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <!-- 哪个活动需要被保护,就在哪个活动上加入访问权限即可,在全局上声明权限一般都是系统级别的,表明当前应用拥有做该资源和功能的使用权限 -->
        <activity
            android:permission="custom.permission.MYACTIVITY"
            android:name="com.example.test.Main1Activity"
            android:label="@string/title_activity_main1" >
            <!-- 定义这个过滤器是便于被访问的有入口 -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    </application>
</manifest>

其他客户端的AndroidManifest文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test_"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="4"/>
	
    <!-- 在全局上声明可能需要访问保护活动的权限,写法最好模仿系统的写法,权限名称没有固定的规定 -->
    <uses-permission android:name="custom.permission.MYACTIVITY" />
    <uses-permission android:name="android.permission.INTERNET" />
    
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test_.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

自定义权限需要注意的地方:
android:name: 权限的唯一标识,一般都是使用 报名加权限名
android:protectionLevel: 权限的等级
android:description: 描述这个权限所针对的操作及用户授予这个权限的后果
android🏷 权限的一个简短描述
android:permissionGroup: 权限所属权限组的名称
补充:
normal:是最低的等级,声明次权限的app,系统会默认授予该权限,不会提示用户(默认赋予的权限,换句话说就是只需要定义name属性即可)
dangerous:权限对应的操作有安全风险,系统在安装声明此类权限的app时会提示用户
signature:权限表明的操作只针对使用同一个证书签名的app开放
signatureOrSystem:与signature类似,只是增加了rom中自带的app的声明
注:android:name 属性是必须的,其他的可选,未写的系统会指定默认值

代码下载:http://download.csdn.net/detail/huang_wei_cai/9429300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值