permission 和 user-permission的区别

参考官方文档:https://developer.android.com/guide/topics/manifest/manifest-intro.html#perms

中文翻译地址:API指南之应用清单文件

permission

<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"] />

user-permission

<uses-permission android:name="string"
    android:maxSdkVersion="integer" />

如果应用需要访问受权限保护的功能,则必须在清单文件中使用 元素声明应用需要该权限。 但是,将应用安装到设备上之后,安装程序会通过检查签署应用证书的颁发机构并(在某些情况下)询问用户,确定是否授予请求的权限。 如果授予权限,则应用能够使用受保护的功能。 否则,其访问这些功能的尝试将会失败,并且不会向用户发送任何通知。

此外,应用也可以使用权限保护自己的组件(Activity、服务、广播接收器和内容提供程序)。 它可以采用由 Android 定义(如 android.Manifest.permission 中所列)或由其他应用声明的任何权限。或者,它也可以定义自己的权限。新权限用 < permission > 元素来声明。 例如,Activity 可受到如下保护:

<manifest . . . >
    <permission android:name="com.example.project.DEBIT_ACCT" . . . />
    <uses-permission android:name="com.example.project.DEBIT_ACCT" />
    . . .
    <application . . .>
     <activity android:name="com.example.project.FreneticActivity"
                  android:permission="com.example.project.DEBIT_ACCT"
                 . . . >
          . . .
        </activity>
    </application>
</manifest>

请注意,在此示例中,DEBIT_ACCT 权限不仅是通过 元素来声明,而且其使用也是通过 元素来请求。要让应用的其他组件也能够启动受保护的 Activity,就必须请求其使用权限,即便保护是由应用本身施加的亦如此。

同样还是在此示例中,如果将 permission 属性设置为在其他位置(例如,android.permission.CALL_EMERGENCY_NUMBERS)声明的权限,则无需使用 元素再次声明。 但是,仍有必要通过 请求使用它。

元素为一组将在代码中定义的权限声明命名空间。 同时, 为一组权限(包括在清单文件中使用 元素声明的权限以及在其他位置声明的权限)定义标签。它只影响如何对提供给用户的权限进行分组。 元素并不指定哪些权限属于该组,而只是为组提供名称。 通过向 元素的 permissionGroup 属性分配组名,将权限放入组中。

总结

uses-permission是申请权限;

permission是自己定义权限;

android组件中的permission指明调用这个组件需要的权限。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\webpack\lib\NormalModule.js:471:10) at D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\webpack\lib\NormalModule.js:503:5 at D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\webpack\lib\NormalModule.js:358:12 at D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at Array.<anonymous> (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 at D:\Microsoft VS Code workplace\bosssoft-train-user-permission-centre-front-end-full\node_modules\graceful-fs\graceful-fs.js:123:16 at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED'
最新发布
07-21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值