it-swarm.com.de

So erfahren Sie, ob das Android-Gerät Bluetooth Low Energy unterstützt

Es scheint, dass die erste Generation von Nexus 7 Bluetooth Low Energy nicht unterstützt, zumindest wenn ich genau die Schritte aus dem Tutorial befolge 

http://developer.Android.com/guide/topics/connectivity/bluetooth-le.html

Ich habe App mit folgendem Code fertig:

 if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
    Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
    finish();
}

Sicher habe ich überprüft, dass Bluetooth aktiviert ist.

Die Frage ist also, wie Sie sicher herausfinden können, ob das Gerät den Bluetooth Low Energy-Standard unterstützt.

UPDATE: Ich verwende Android 4.3

21
abovesun

Ihr Code ist wirklich gut, aber Sie fügen den folgenden Code genau ein?

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

Der wichtige Code lautet:

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

Da wir sicherstellen müssen, dass die Anwendung erfolgreich ausgeführt werden kann,

Wenn Sie Ihre App jedoch Geräten zur Verfügung stellen möchten, die BLE nicht unterstützen, sollten Sie dieses Element dennoch in das Manifest Ihrer App aufnehmen, aber set required = "false" festlegen.

Dieser Code funktioniert für mich.

EDIT: Ich habe etwas Gutes für Sie gefunden: Welche Geräte sind mit der BLE-Funktion kompatibel?

11
Huy Tower

Sie sollen nach dem 'Feature' suchen:

PackageManager pm = ctx.getPackageManager();
boolean hasBLE = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);

Ich bin mir nicht wirklich sicher, wie ernst die Hersteller dies nehmen. Die einzige Funktion, die ich selbst geprüft habe, ist FEATURE_TELEPHONY. Verschiedene Hersteller behandeln das auf unterschiedliche (und rätselhafte) Weise, daher kann Ihre Laufleistung variieren, aber ich glaube, dass dies der Fall ist die Art und Weise, wie Sie es tun sollen.

2
Tom

Sie haben den Code richtig angegeben, um zu überprüfen, ob ein unterstütztes Gerät über BLE verfügt. Bei dieser Prüfung wird festgestellt, ob es die Funktion Android.hardware.bluetooth_le gibt, die normalerweise in einer Datei mit dem Namen Android.hardware.bluetooth_le.xml am Ort /system/etc/permissions gespeichert ist, zu der Sie manuell mit einem Dateimanager im Android-Gerät navigieren können.

0
EarthLord

Der N7 2012 bietet zwar die Hardware-Unterstützung für BLE, wird jedoch von Google ROM nicht unterstützt. Ich habe ein N72012 mit der Reinheit Rom installiert und kann bestätigen, dass es an BLE-Geräte angeschlossen werden kann.

0
David C

Die Bluetooth-Architektur von Android wurde vollständig von Android 4.1 auf 4.2 geändert. Jedes Gerät mit Android Jelly Bean 4.2 oder höher kann Bluetooth Low Energy nicht unterstützen, da es im neuen Bluedroid-Stack nicht verfügbar ist. Sehen:

http://events.linuxfoundation.org/images/stories/slides/abs2013_rymanowski.pdf

0
ClayMontgomery