android 自定义权限 permission

http://blog.csdn.net/feng88724/article/details/6409313

http://byandby.iteye.com/blog/1028034

定义的Activity的Manifest中

 <permission-group
        android:name="com.adb.permission-group.custom"
        android:description="@string/hello_world"
        android:label="test for" >
    </permission-group>

    <permission
        android:name="com.abc.permission.startAct"
        android:description="@string/hello_world"
        android:label="test to start permisson"
        android:permissionGroup="com.adb.permission-group.custom"
        android:protectionLevel="normal" >
    </permission>
...
 <activity
            android:name=".MainActivity1"
            android:label="@string/app_name"
            android:permission="com.abc.permission.startAct" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

  启动的activity 工程Manifest 使用 permission

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

  说明:

1. permission 中android:permissionGroup可以不加
2. android:protectionLevel  必须有 定义权限的风险级别,必须是以下值之一: 
notmal、 dangerous、signature、signatureOrSystem 
normal表示权限是低风险的,不会对系统、用户或其他应用程序造成危害。 
signature 同一签名可访问
signatureOrSystem  同一签名或者系统应用

3.利用可限制访问 activity 或者 Receiver 或者 provider (记得有次面试会问怎么限制provider的访问者 这个是一个方法)

如:
      <provider
            android:name="com.android.launcher2.LauncherProvider"
            android:authorities="com.android.launcher5.settings"
            android:exported="true"
            android:readPermission="com.android.launcher.permission.READ_SETTINGS"
            android:writePermission="com.android.launcher.permission.WRITE_SETTINGS" />

  

android:exported="true"是 是否 可以由外部程序访问

如:
      <receiver
            android:name="com.android.launcher2.PreloadReceiver"
            android:permission="com.android.launcher.permission.PRELOAD_WORKSPACE" >
            <intent-filter>
                <action android:name="com.android.launcher.action.PRELOAD_WORKSPACE" />
            </intent-filter>
        </receiver>

  

原文地址:https://www.cnblogs.com/wjw334/p/4365291.html