【问题标题】:Marshmallow permission modelMarshmallow 权限模型
【发布时间】:2015-11-11 22:29:24
【问题描述】:

我有一个关于 Marshmallow 权限模型的问题。 如果我的应用程序的目标是 API 级别 22,并且用户在 Marshmallow 上安装了我的应用程序。 我是否获得了预先授予的所有权限?

我没有在任何文档中看到这一点。

提前致谢。

【问题讨论】:

  • 试试这个它可能是工作 stackoverflow.com/a/41221852/5488468

标签: java android android-manifest android-6.0-marshmallow


【解决方案1】:

我没有在任何文档中看到这一点。

引用the documentation:

如果设备运行Android 5.1(API级别22)或更低,应用的targetSdkVersion为22或更低,当用户安装时系统会要求用户授予权限应用程序。如果您向应用程序的更新版本添加新权限,系统会在用户更新应用程序时要求用户授予该权限。一旦用户安装了应用程序,他们撤销权限的唯一方法就是卸载应用程序。

是的,您在安装时获得所有权限。但是,用户仍然可以通过设置手动撤销这些权限,如果用户这样做,虽然您(通常)不会获得SecurityException,但您将不会获得受保护的数据。例如,如果用户撤销了您对联系人的访问权限,而您尝试查询联系人,系统将表现得好像没有联系人一样。

【讨论】:

  • 感谢 CommonWare,但文档说用户只能通过卸载应用程序来撤销权限,但似乎他甚至可以通过进入设置来做到这一点
【解决方案2】:

是的,您应该预先授予所有危险权限,但用户可以随时撤销它们,这可能会导致应用程序不稳定。

【讨论】:

    【解决方案3】:

    如果设备运行的是 Android 6.0(API 级别 23)或更高版本,并且应用的 targetSdkVersion 为 23 或更高版本,则应用会在运行时向用户请求权限。用户可以随时撤销权限,所以应用每次运行时都需要检查自己是否有权限。有关在您的应用中请求权限的更多信息,请参阅此链接

    https://developer.android.com/guide/topics/security/permissions.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2016-11-09
    • 2015-11-15
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多