单一活动来管理权限

时间:2017-03-06 19:35:56

标签: android

我无法在任何地方找到答案,所以请帮助。

假设我的Android应用程序中有10个需要各种危险权限的活动。

Activity-1 needs Dangerous Permission-1
Activity-2 needs Dangerous Permission-2
...
Activity-10 needs Dangerous Permission-10 ect.

问题:如果我创建第11个活动[让我们说PermissionManager.java]并一个接一个地动态获取用户的所有10个权限,那么应用程序是否可以工作?

是否每个活动都应该请求所需的权限?

6 个答案:

答案 0 :(得分:1)

您可以在任何您喜欢的地方征得您的许可,只要在您做出“危险”行为之前获得许可。操作

甚至有像https://github.com/k0shk0sh/PermissionHelper这样的图书馆为你做这件事

答案 1 :(得分:1)

  

假设我的Android应用程序中有10个需要各种危险权限的活动。活动-1需要危险许可-1

Activity只是UI元素。它本身没有任何危险,因此您不需要在Activity的上下文中获得任何权限。但是,您需要按特定类型的操作进行权限,但您可以在应用中的许多位置执行这些操作。活动实际上没有任何东西,除了它通常持有小部件,即显示该操作的结果。

  

如果我创建了第11个活动[让我们说PermissionManager.java]并且一个接一个地动态获取用户的所有10个权限,那么应用程序是否有效?

每个活动未授予权限。它是根据您的整个应用程序授予的,因此一旦您获得它,您可以在应用程序中的任何地方执行该操作而无需询问。随机related docs

  

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

答案 2 :(得分:1)

  

如果我创建活动并且   从一个接一个地动态获取用户的所有10个权限,   申请会有效吗?

答案:

Q1:如果您同时申请多项许可,应用程序将正常运行。

requestPermissions(new String[]{
                            Manifest.permission.READ_CONTACTS,
                            Manifest.permission.ACCESS_FINE_LOCATION},
                    REQUEST_CODE);

请一次查看this多个权限方法。

  

是否每个活动都应该请求所需的权限?

Q2:如果每个activity请求其所需的权限,它会提供更好的用户体验。那么你也很容易处理。您可以禁用有关该权限的功能。

有关详细信息,请参阅官方Documentation

答案 3 :(得分:0)

App Manifest AndroidManifest.xml 应该用于管理您的应用权限。

  • 这是在用户下载您的应用时以及所有时处理的 然后设置权限。
  • 它声明了应用程序必须具有的权限才能访问受保护的API部分并与其他应用程序进行交互。
  • 它还声明了其他人需要具有的权限才能与应用程序的组件进行交互。

See App Manifest on Android Developer

答案 4 :(得分:0)

您应该在需要时准确地征得他们的同意。可能存在需要许可的活动的功能,但如果用户从未使用该功能该怎么办?用户被要求获得他不理解其原因的许可是不直观的。此外,建议您告知用户应用程序需要获得权限的原因以及用户通过授予权限将获得的权利。

答案 5 :(得分:0)

试试这个库非常好我2天前在我的项目中使用过这个:

https://android-arsenal.com/details/1/5364