Android-приложение не появляется в Маркете для устройств 1.5 и 1.6, Bluetooth - это android: required = "false" - PullRequest
3 голосов
/ 29 августа 2011

Наше приложение для Android теперь может использовать Bluetooth, если доступно, но оно не обязательно.
Поэтому я добавил эти строки в манифест:

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

ПРОБЛЕМА : после публикации большинство людей могут загрузить приложение, но приложение не отображается в Маркете для:

  • Android 1.5 HTC Magic
  • Android 1.6 G1

Что мне изменить, чтобы оно появилось в Маркете и с этими устройствами?

Обратите внимание, что мы разрешаем SDK уровня 3, который включает в себя Android 1.5:

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11"/>

В предыдущей версии приложения не было никакой поддержки Bluetooth, и она появлялась у всех на рынке.
Идея заключалась в том, что Android 1.5 / 1.6 не понимает android:required="false", что исключает устройства без Bluetooth, но эта гипотеза опровергается тем фактом, что ранее упомянутый G1 имеет Bluetooth.

Подробности при необходимости: полный манифест , манифест предыдущей версии , Маркет , наше внутреннее обсуждение .

1 Ответ

4 голосов
/ 02 сентября 2011

Может быть, это просто невозможно из соображений безопасности: http://www.medieval.it/google-is-censoring-bluetooth-on-android-the-proof/menu-id-66.html

Мое решение состояло бы в том, чтобы выпустить вторую версию для 1.5 / 1.6 без этих строк в манифесте для рынка:

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

В будущем вы также можете сообщить им об обновлении и месте загрузки (единственной сборки Bluetooth) изнутри ankidroid.

Другое решение может быть:

<manifest ...>
<uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11" />
...
</manifest>

или просто:

<manifest ...>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-sdk android:minSdkVersion="3" />
...
</manifest>

Спасибо за щедрость!

Источник для этого: http://developer.android.com/guide/topics/manifest/uses-feature-element.html#bt-permission-handling

...