关于Android中自定义权限的几个问题

关于Android中自定义权限的几个问题,android,security,android-intent,android-activity,android-permissions,Android,Security,Android Intent,Android Activity,Android Permissions,我正在学习Android编程,我已经了解了自定义权限的概念 根据我的理解,这就是自定义权限的工作原理: “基本应用程序”可以通过声明自定义权限(即,在清单文件中使用标记)来保护其某些组件(例如,活动和服务),调用受自定义权限保护的活动和服务的'client app'需要获得必要的权限(即,使用清单文件中的标记)调用基本应用程序中的那些组件 但是,我对自定义权限有以下问题: 如果自定义权限被声明为危险权限(即,android:protectionLevel=“hazard”),则客户端应用程序是否

我正在学习Android编程,我已经了解了自定义权限的概念

根据我的理解,这就是自定义权限的工作原理:

“基本应用程序”
可以通过声明自定义权限(即,在清单文件中使用
标记)来保护其某些组件(例如,活动和服务),调用受自定义权限保护的活动和服务的
'client app'
需要获得必要的权限(即,使用清单文件中的
标记)调用
基本应用程序中的那些组件

但是,我对自定义权限有以下问题:

  • 如果自定义权限被声明为危险权限(即,
    android:protectionLevel=“hazard”
    ),则
    客户端应用程序是否需要在安装期间获得用户的批准?如果是,用户如何知道这些自定义权限,因为没有任何自定义权限文档
  • 在安装期间,
    客户端应用程序
    如何知道用户的手机中已经安装了
    基本应用程序
    ?客户端应用程序
  • 是否还需要知道此信息
  • 一旦安装了
    客户端应用程序
    ,如果用户决定删除
    基本应用程序
    ,会发生什么情况?在这种情况下,如果用户尝试使用
    客户端应用程序
    ,会导致任何安全异常吗
  • 我不知道这些问题是否有意义,但这让我想知道自定义权限在实际场景中是如何工作的


    谢谢。

    以下是您问题的答案。但您可以参考以更好地了解Android权限

    是的,如果你申报的话

    android:protectionLevel="dangerous"
    
    然后,系统可能不会自动将其授予请求应用程序。应用程序请求的任何危险权限可能会显示给用户,并要求在继续之前进行确认

    定义自定义权限的基础应用程序应该通过

    android:description="string resource"
    
    下面是一个权限定义的示例。希望它是不言自明的

    <permission android:description="string resource"
    android:icon="drawable resource"
    android:label="string resource"
    android:name="string"
    android:permissionGroup="string"
    android:protectionLevel=["normal" | "dangerous" | 
     "signature" | "signatureOrSystem"] />
    
    
    
    2.据我所知,客户端应用程序在安装时无法看到基本应用程序的存在。但在客户端应用程序启动时是可能的。无论如何,权限是由Android系统根据您的Android.xml文件授予的。因此客户端应用程序在安装时不必担心基本应用程序


    3.即使客户端应用仍在安装,也可以删除基本应用。在任何阶段都不会出现任何错误消息或安全异常。但当您再次尝试运行客户端应用时,在尝试从客户端应用调用基本应用活动时,可能会出现“未找到活动”异常。

    两个要点:首先,用户Acceptance是all或nothing,请安装带有权限警告的应用程序,或者不安装。其次,如果在使用应用程序之前未安装授予应用程序,则不会授予权限,并且依赖于这些权限的功能将无法工作。请参阅此链接,这将有所帮助