【问题标题】:Android: Does changing API level to 23 affect the way a permission in the manifest is set up? [duplicate]Android:将 API 级别更改为 23 是否会影响清单中权限的设置方式? [复制]
【发布时间】:2016-09-07 12:50:25
【问题描述】:

我并不是真正的 android 开发专家,所以请多多包涵。

我要将应用从 Android 19 更改为 23。Android API 23 改变了权限的工作方式。所以在 API 23 中发生的是,它不是在 App 安装中询问权限,而是在运行时询问权限。

我的问题是我是否需要更改我在 Andoid 清单中设置权限的方式?因为我尝试在 build.gradle 中将 API 更改为 23,但一切似乎仍然可以正常工作。

【问题讨论】:

    标签: android gradle permissions android-manifest


    【解决方案1】:

    我的问题是我需要对我在 Andoid 清单中设置权限的方式进行更改吗?

    您无需做任何事情。如果您只想在 API 级别 23+ 的设备上使用某些权限,则可以使用 <uses-permission-sdk23> 而不是 <uses-permission>,但这完全是可选的。

    因为我尝试在 build.gradle 中将 API 更改为 23,但一切似乎仍然可以正常工作。

    我不知道“将 API 更改为 23”是什么意思。如果您的targetSdkVersion 为 23 或更高,并且您在 API 级别 23 或更高(Android 6.0+)上运行,并且您正常安装应用程序(即,不是通过从开发工具运行它),用户将不再是在安装时提示权限。但是,对于您请求的具有 protectionLeveldangerous 的任何权限(例如,WRITE_EXTERNAL_STORAGE),在您在运行时请求它们并且用户授予它们之前,您将不会保留这些权限。

    【讨论】:

    • 抱歉不准确,但你是对的。我将 targetSdkVersionminSdkVersion 更改为 23。谢谢,我现在明白其中的区别了。我认为在清单中添加权限会在每次使用功能时自动请求权限。看来我需要在 java 代码中添加权限检查。
    【解决方案2】:

    没有。您在代码中设置的targetSdkVersionminSdkVersion 等对权限的处理方式没有影响,而是取决于目标应用程序正在运行的设备。 Android 更改了在 Android 6.0(API 24 设备)中询问权限的方式。您必须在运行时请求权限。 Official Documentation for asking runtime permissions from user.

    【讨论】:

    • 我明白了。很好的解释。感谢您的链接。正是我需要的!
    • 如果对你有帮助,请采纳这个答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2016-01-03
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多