设置" requried = false"

时间:2016-01-08 15:23:10

标签: android bluetooth android-gradle android-manifest

我已将我的清单设置为使用蓝牙低能耗功能,我希望它是可选的,但当我尝试更新Google Play商店中的应用时,它表示我仍然需要BTLE功能,它会削减我的设备范围。

我已经添加了android:required="false" param,但它仍无效。

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

<uses-feature
        android:name="android.hardware.bluetooth"
        android:required="false"/>

<uses-feature
        android:name="android.hardware.bluetooth_le"
        android:required="false"/>

我的aapt转储徽章:

uses-feature-not-required: name='android.hardware.bluetooth'
uses-feature: name='android.hardware.bluetooth_le'
uses-feature: name='android.hardware.camera'
uses-feature-not-required: name='android.hardware.camera.autofocus'
uses-feature-not-required: name='android.hardware.camera.flash'
uses-feature-not-required: name='android.hardware.nfc'
uses-feature: name='android.hardware.screen.landscape'
uses-feature-not-required: name='android.hardware.touchscreen'
uses-feature-not-required: name='android.hardware.wifi'
uses-feature: name='android.hardware.screen.portrait'

在正常的蓝牙功能上它可以工作,但在BTLE它没有。 我使用的是Estimote SDK。

1 个答案:

答案 0 :(得分:7)

您的应用使用Estimote SDK。库已根据需要声明了功能。

来自Manifest Merger tool的官方网站

  

YEAR: 1 MONTH: 2 DATE: 5 - 默认为true。与其他属性合并将使用OR合并策略,因为如果任何库需要该功能,则生成的应用程序将需要该功能。

解决方案是使用tools:node markers

中的<uses-feature android:required>
  

将低优先级声明替换为带注释的声明。

你明白将是下一个:

<tools:node="replace">