android - 有条件的许可声明
问题描述
我正在构建一个围绕 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" />
解决方案
使用内置maxSdkVersion
:
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"
android:maxSdkVersion="28"/>