首页 > 解决方案 > 有条件的许可声明

问题描述

我正在构建一个围绕 SDK version 分区的 Android 应用程序29。出于兼容性原因,应用程序必须在 SDK 版本< 29>= 29. 这两个版本需要一组不同的权限。目前,应用程序会根据活动的 SDK 版本自动切换功能。我的应用程序被 Play 商店拒绝,因为两个应用程序版本都声明了所有权限。例如,该>= 29版本不需要与该版本一样多的(敏感)权限,< 29但由于未积极使用这些权限而被拒绝。

我已经阅读了manifest merging,但我不确定它是否可以实现我想要的(条件许可声明)。

我想只维护一个处理两个应用程序版本的 apk。是否可以声明条件清单权限,例如:

<if minSdkVersion="29">
    <!-- Arbitrary permissions -->
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
</if>
<uses-permission android:name="android.permission.BLUETOOTH" />

标签: android

解决方案


使用内置maxSdkVersion

<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" 
android:maxSdkVersion="28"/>

推荐阅读