[Android]权限处理

    Android中的权限分为两类,分别是:系统权限和自定义权限。

    对于系统权限,主要是用来对访问某些敏感操作(绝大部分是访问本地能力)进行控制,比如:访问网络、打电话、查询联系人等。因此,开发者需要在用到这些被系统权限控制的接口时,需要在AndroidManifest.xml文件中声明。而在AndroidManifest.xml文件中声明后,就可以被android应用商店读取来提示用户应用需要用到哪些权限,或者安装应用时,也可以提醒用户。

    对于系统权限,是对系统接口进行控制。对于应用自定义权限来说,并不能对应用接口进行控制,而是对应用组件进行控制。当然,由于一个应用程序访问另一个应用程序,都是通过组件访问,因此,这种情况,对接口进行控制也没有任何意义。

    下面来简单介绍一下应用程序如何自定义权限,即permission。    

    比如:我要对我的应用的某个Activity进行权限控制,当其他应用程序启动我的这个Activity时,需要声明权限。

1、定义permission

<permission android:name="com.ting.permission.START_PERMISSION_ACTIVITY" android:protectionLevel="normal"></permission>
其中,permission的上面两个属性是必填的,除此之外,还有protectionGroup、label、description、icon是选填的。

2、为Activity增加权限控制

<activity android:name=".ui.activities.PermissionActivity" 
            android:label="@string/PermissionActivity"
            android:permission="com.ting.permission.START_PERMISSION_ACTIVITY">
        	<intent-filter>
        	    <action android:name="com.ting.intent.action.START_PERMISSION_ACTIVITY"/>
        	    <category android:name="android.intent.category.DEFAULT"/>
        	</intent-filter>
        </activity>

3、其他应用程序访问上面的PermissionActivity时,需要在AndroidManifest.xml文件中声明权限

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

具体例子参见我的github示例工程中的PermissionActivity:https://github.com/tingzi/AndroidExample



你可能感兴趣的:(android,Permission)