4

现在这对我来说非常有趣,我主要了解运行时权限,并且我很清楚为什么提出运行时权限?以及我们如何使用它?但是在这个问题中,这个问题是关于由于这个运行时许可的事情而出现的问题,一个人提出了一种相当新的方法来解决这个问题。

请参阅U.swap对同一问题的回答,就是答案。

这家伙提出了一个不错且可行的解决方案,用户只需批准一次权限,并且在他的余生中,他不必担心所有运行时权限和应用程序将在棉花糖版本和预棉花糖版本上运行,如评论中讨论的那样我和Commonsware之间讨论的所有评论。

@NiteshPareek:这个答案并没有阻止应用程序在 Android 6.0+ 设备上运行-Commonsware

但这意味着我们可以购买通过 Runtime Permissions 提出的安全性?@CommonsWare – 塔潘帕尔马

@Tapanparmar:不,因为用户可以在设置中手动撤销权限。拥有 targetSdkVersion 22 或更低意味着您的应用程序不会有任何运行时权限代码,因此用户需要在安装时同意您请求的权限。这就是 Android 从一开始的工作方式。– CommonsWare

好的,所以应用程序将在棉花糖上运行而不显示权限?@CommonsWare - Tapan Parmar

@Tapanparmar:用户将在安装应用程序时获得权限。– CommonsWare

好的,所以我们可以跳过这个提供的该死的权限,但是这样做有什么缺点吗?@CommonsWare

@Tapanparmar:如果用户不喜欢预先授予所有权限,他们可以选择不安装您的应用程序。此外,您可能希望基于更高的 targetSdkVersion 值的其他行为可能会丢失。如果您还有其他问题,请提出单独的 Stack Overflow 问题。– CommonsWare

所以我想知道这样做有什么实际的缺点吗?以及作为RunTimePermissions主要目的的安全性会发生什么。这样做真的更可取吗?

请参阅此处对答案的评论或查看下图

讨论评论

4

1 回答 1

4

这样做有什么实际的缺点吗?

如果用户不喜欢预先授予所有权限,他们可以选择不安装您的应用程序。此外,您可能希望基于较高targetSdkVersion值的其他行为可能会丢失。

以及作为 RunTimePermissions 主要目的的安全性会发生什么

没有什么。您仍然需要所有<uses-permission>元素,并且用户仍然必须同意授予您权限。但是,该协议主要发生在安装时,而不是在应用程序运行时。请记住,Android 6.0+ 设备的用户仍然可以dangerous通过“设置”应用撤销 - 级别权限。

这样做真的更可取吗?

恕我直言,不。最终,有些事情会迫使你的手,并要求你升级你的targetSdkVersion. 而且,正如我所指出的,用户可能更愿意不安装您的应用程序,而与其他一些应用程序一起使用,该应用程序在安装时不会要求很多权限。targetSdkVersion对于不再维护的应用程序或经验不足的开发人员,使用低于 23 的值是一个很好的答案。

于 2016-07-16T13:49:31.777 回答