zoukankan      html  css  js  c++  java
  • Android自定义权限

    一、自定义权限

      自定义权限,一般是考虑到应用共享组件时的安全问题。我们知道在四大组件 AndroidManifest 中注册的时候,添加 exported = "true" 这一属性节点,这样就可以使其被其他 App 所调用。但是我们希望只有被允许的App才能调用,这个时候可以考虑使用”自定义权限“来实现。我们定义提供组件的 App 为开放端,使用开放组件的 App 为接入端,用这两个概念来描述自定义权限。

      1. 开放端:在 AndroidManifest 的 manifest 节点下定义权限:

    <permission
       android:name="com.sl.permission.aidl"
       android:description="@string/service_permission"
       android:permissionGroup="com.sl.permissions"
       android:protectionLevel="signature" />

      Permission 属性

      <1> name : 权限名称

      <2> description : 权限描述

      <3> permissionGroup : 指定权限属于的权限组

      <4> protectionLevel : 权限保护级别

      权限保护级别:

    ProtectionLevel Desc
    Normal                          这是最低风险的权限,如果应用声明了此权限,也不会提示安装应用的用户授权(例如,如果声明了定位权限,则应用到定位功能时,会明确提示用户,是否授予定位权限,但是protectionLevel为normal的不会明确提示,直接默认授予),系统直接默认该应用有此权限;
    dangerous 这种级别的权限风险更高,拥有此权限可能会访问用户私人数据或者控制设备,给用户带来负面影响,这种类型的权限一般不会默认授权。
    signature 这种权限级别,只有当发请求的应用和接收此请求的应用使用同一签名文件,并且声明了该权限才会授权,并且是默认授权,不会提示用户授权
    signatureOrSystem                                              

    这种权限级别是系统授权的系统应用或者相同签名的应用,一般避免使用该级别,因为 signature 已经能满足大部分需求。

      开放组件:添加 permission 属性为自定义的权限

     <service
          android:name=".BookManagerService"
          android:permission="com.sl.permission.aidl"
          android:exported="true">
          <intent-filter>
              <action android:name="com.sl.aidl" />
              <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
    </service>

      2. 接入端:在 AndroidManifest 的 manifest 节点下使用自定义权限

      添加权限:

    <uses-permission android:name="com.sl.permission.aidl" />

      调用开放组件:

    Intent service = new Intent();
    service.setAction("com.sl.aidl");
    service.setPackage("com.sl.binderservice");
    bindService(service, mConnection, Context.BIND_AUTO_CREATE);

      在接入端添加自定义的权限才能正常调用开放接口,否则就会出现下面这个错误,这也正好实现了过滤接入端的需求。

  • 相关阅读:
    Feature Extractor[ResNet]
    Feature Extractor[inception v2 v3]
    Feature Extractor[batch normalization]
    Feature Extractor[googlenet v1]
    Feature Extractor[content]
    Feature Extractor[VGG]
    object detection[rfcn]
    【小白的CFD之旅】05 补充基础
    【小白的CFD之旅】04 任务
    【小白的CFD之旅】03 老蓝
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/8927179.html
Copyright © 2011-2022 走看看