Android app not appearing in Market for 1.5&1.6 de

2019-05-16 02:03发布

问题:

Our Android app can now use Bluetooth if available, but it is not required.
So I added these lines to the manifest:

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

PROBLEM: After publication, most people can download the app, but the app does not show up in the Market for:

  • Android 1.5 HTC Magic
  • Android 1.6 G1

What should I change so that it appears in the Market with those devices too?

Please note that we allow SDK level 3, which includes Android 1.5:

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

The previous version of the app did not have any Bluetooth support, and it was showing in everybody's Market.
An idea was that Android 1.5/1.6 does not understand android:required="false", which would eliminate devices with no Bluetooth, but this hypothesis is invalidated by the fact that the previously mentioned G1 has Bluetooth.

Details if needed: full manifest, manifest of previous version, Market, our internal discussion.

回答1:

Maybe it's just impossible, because of security concerns: http://www.medieval.it/google-is-censoring-bluetooth-on-android-the-proof/menu-id-66.html

My solution would be to release a second version for 1.5/1.6 without these lines in the manifest for the market:

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

In the future, you could also inform them about an update and the download location (of the one and only bluetooth-build) from within ankidroid.

Another solution could be:

<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>

or just:

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

Thanks for you generosity!

Source for that is: http://developer.android.com/guide/topics/manifest/uses-feature-element.html#bt-permission-handling