Android 自定义应用permission 权限给其他应用方式

来源:互联网 发布:mysql 10060错误 编辑:程序博客网 时间:2024/05/15 03:55

1、这里操作的基本是提供者的AndroidManifest.xml。

     AndroidMainifest.xml 是在开机的时候,就会被扫描,类似这些permission也会被扫描并写入到文件中。文件存储在/data/system/packages.xml中,如果你定义了permission,那么需要重新开机,检查上面那个文件中是否存在,如果存在,则定义成功。如果没存在,请检查定义的permisson是否有问题。 

<permission android:name="com.joe.permission.WRITE_DB"
        android:permissionGroup="android.permission-group.JOE_WRITEDB"
        android:protectionLevel="dangerous"
        android:label="@string/app_name"
        android:description="@string/app_name" />

这个就是在定义permisson的地方,注意这里面有一个群组,是自定义的,不是用的系统的,那么也需要定义一个群组:

 <permission-group android:name="android.permission-group.JOE_WRITEDB"
        android:label="@string/app_name"
        android:description="@string/app_name"
        android:permissionGroupFlags="personalInfo"
        android:priority="360"/>

 

这样一个permission就定义完成了,那么要给上面的com.joe.permission.WRITE_DB permisson 使用时候,需要在Manifest中的provider中加入使用条件:

     <provider android:name="JoeProvider"
            android:authorities="com.joe.provider.DB"
            android:multiprocess="false"
            android:exported="true"
            android:grantUriPermissions="true"
            android:writePermission="com.joe.permission.WRITE_DB"
    />

这样在另外一个应用,只要引用这个permisson即可使用。当然这个引用也是在使用者的AndroidManifest中加入的。

<uses-permission android:name="com.joe.permission.WRITE_DB"/>