繁体   English   中英

您如何在Android中请求权限?

[英]How do you ask for permission in android?

有人可以告诉我在文档中如何查询访问文件系统或其他媒体的权限吗?

如果某个应用程序在安装过程中未请求权限,这意味着它除了自己的隔离存储空间外,是否无权请求其他数据?

权限

如果您使用的是Android 5.1或更低版本 ,则必须在AndroidManifest.xml文件中声明您的应用所需的所有权限。 正如您在docs上看到

例:

<manifest xlmns:android...>
   ...
   <uses-permission android:name="android.permission.INTERNET" />
   <application ...>
       ...
   </application>
</manifest>

如果您未对清单文件声明权限,则安装后无法请求新的权限,除非您更新了应用程序请求的新权限。

但这在Android 6.0(API级别23)上发生了变化 ,您可以在运行时请求权限。

从文档:

从Android 6.0(API级别23)开始,用户在应用程序运行时(而不是在安装应用程序时)授予应用程序权限。 这种方法简化了应用程序的安装过程,因为用户在安装或更新应用程序时无需授予权限。 它还使用户可以更好地控制应用程序的功能。 例如,用户可以选择授予摄像头应用访问摄像头的权限,但不授予设备位置的访问权限。 通过转到应用程序的“设置”屏幕,用户可以随时撤消权限。

因此,与其询问应用程序安装的所有权限,不如:

在此处输入图片说明

从Android 6.0开始,还可以这样请求权限:

取自文档。

有关更多信息, 请查看培训指南此链接

档案存取

如果要对外部文件存储具有写访问权限,则必须声明对此文件的许可,如docs所述

要写入外部存储,必须在清单文件中请求WRITE_EXTERNAL_STORAGE权限。

例:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>

而且,如果您只是想阅读它,那么所有应用程序都已经具有该功能,但是将来可能会更改,因此最好使用此权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

您需要了解的有关系统权限的所有内容都位于文档中:

使用系统权限

从API 23(棉花糖)开始,系统不会在安装时询问许可权,而是在开发人员认为需要许可权时在运行时询问许可权。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM