是否需要在Android 6+;上请求权限;?

是否需要在Android 6+;上请求权限;?,android,Android,在谷歌上搜索了这么多麻烦之后,我终于设法申请了存储许可,使我的应用程序与安卓系统中引入的新许可系统“兼容”。但现在,我注意到,我实际上不需要做所有的努力,因为系统会自动授予权限,而无需请求。在清单中拥有权限就足够了。(在安装ES文件浏览器或我自己的应用程序时看到)。是否需要请求Android 6+上的权限 这就是my Manifest.xml的外观: android:versionCode="100" android:versionName="1.0.0" > <uses-sdk

在谷歌上搜索了这么多麻烦之后,我终于设法申请了存储许可,使我的应用程序与安卓系统中引入的新许可系统“兼容”。但现在,我注意到,我实际上不需要做所有的努力,因为系统会自动授予权限,而无需请求。在清单中拥有权限就足够了。(在安装ES文件浏览器或我自己的应用程序时看到)。是否需要请求Android 6+上的权限

这就是my Manifest.xml的外观:

android:versionCode="100"
android:versionName="1.0.0" >

<uses-sdk android:minSdkVersion="14" />

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
android:versionCode=“100”
android:versionName=“1.0.0”>

PS:我正在使用三星Galaxy S7

是的,我们需要获得用户的许可。 从Android 6.0(API级别23)开始,用户在应用程序运行时授予应用程序权限,而不是在安装应用程序时。这种方法简化了应用程序安装过程,因为用户在安装或更新应用程序时不需要授予权限。它还为用户提供了对应用程序功能的更多控制;例如,用户可以选择让摄像头应用程序访问摄像头,但不访问设备位置。用户可以随时通过进入应用程序的设置屏幕撤销权限

系统权限分为正常和危险两类:

正常权限不会直接危及用户的隐私。如果您的应用程序在其清单中列出了正常权限,系统将自动授予该权限

危险权限可使应用程序访问用户的机密数据。如果您的应用程序在其清单中列出了正常权限,系统将自动授予该权限。如果您列出了危险权限,用户必须明确批准您的应用程序

但是,该声明的效果因系统版本和应用程序的目标SDK级别而异:

如果设备运行的是Android 5.1或更低版本,或者你的应用程序的目标SDK是22或更低版本:如果你在清单中列出了一个危险的权限,用户在安装应用程序时必须授予该权限;如果他们不授予该权限,则系统根本不会安装该应用程序

如果设备运行的是Android 6.0或更高版本,并且您的应用程序的目标SDK为23或更高版本:应用程序必须在清单中列出权限,并且必须在应用程序运行时请求所需的每个危险权限。用户可以授予或拒绝每个权限,即使用户拒绝权限请求,应用程序也可以在有限的功能下继续运行

我们真的需要请求权限吗

否。如果您将目标API设置为22或更低(ANdroid 5.x),则权限系统未设置,因此,在下载应用程序时,用户必须授予下载应用程序的所有权限

但是

用户仍然可以撤销“危险”级别的任何权限。如果你的应用程序使用了其中任何一个,你也不能要求它们返回。此外,它还会导致崩溃,因为应用程序不会被编程来处理应用程序无权访问权限时发生的事情

您只需对危险级别为“危险”的权限请求权限。“正常”-权限是自动授予的,不能撤消。是您需要请求的危险权限列表

考虑到:

  • 撤销
  • 用户安全(以及真正关心此问题的用户的隐私保护)
最好请求权限。这还可以防止权限被吊销时崩溃。即使针对API 22及以下版本,权限仍然可以被撤销,并且在调用需要这些权限的内容时会导致问题

只有在以API 23为目标并请求权限时,您才能控制您的应用程序。您可以在需要权限的地方请求权限,在没有访问权限的情况下,您可以阻止功能,还可以让用户知道权限的用途,并让用户感觉权限没有被用于恶意或侵犯隐私的行为


如中所述:


是的,我们需要向用户请求权限。从Android 6.0(API级别23)开始,用户在应用程序运行时授予应用程序权限,而不是在安装应用程序时

这不是一项要求,但如果您以API 22(Android 5)为目标,则在安装应用程序时仍会要求权限。如果针对API 22的应用程序与ANdroid 6“不兼容”,许多应用程序将不被允许安装

如果设备运行的是Android 5.1或更低版本,或者你的应用程序的目标SDK是22或更低版本:如果你在清单中列出了一个危险的权限,用户在安装应用程序时必须授予该权限;如果他们不授予该权限,则系统根本不会安装该应用程序

针对Android 5.x及更低版本的应用程序在Android 6上的安装方式仍然相同:如果应用程序针对API 22,则不能允许或不允许单一权限的安装。可以从设置中撤销权限,但当安装以API 22为目标时,不能阻止任何权限


在ANdroid清单中,您仍然必须列出所有权限,包括正常权限和危险权限。如果应用程序以API 23为目标,它将需要Android 5.x及更低版本上的所有权限,并请求API 23及更高版本(请记住在请求之前检查用户是否使用API 23或更高版本)

总结如下:

请求不是一项要求。然而,这样做是一个好主意,并确保你设计的应用程序只做它允许做的事情。因此:您不必请求权限,但这样做是一个非常好的主意

针对API 23时,不会自动授予任何权限。你必须要他们。当以API 22为目标时,当用户安装应用程序时,会自动授予和同意权限

Al