Holen Sie sich die Liste der verbundenen Bluetooth-LE-Geräte
Ich bin neu in Bluetooth Low Energy (LE) - API. Gibt es eine Möglichkeit zu überprüfen, ob das Android-Gerät derzeit verbunden mit einer Bluetooth-LE-Geräten und möglicherweise erhalten Sie eine Liste dieser Geräte?
Tun, BT-LE Geräte auch tatsächlich "verbinden"? Ich habe bemerkt, wenn meine smartwatch ist gepaart/verbunden mit meinem Nexus 5, das Bluetooth-Symbol nicht weiß werden/Fett in der status-bar (auf KitKat), wie es tut, wenn eine Verbindung zu einem klassischen Bluetooth-Gerät.
War ich mit dem nachstehenden code für den classic-Geräten. Es sieht aus wie ich überprüfen kann, GATT und GATT_SERVER die gleiche Weise, aber Sie immer wieder getrennt.
UPDATE: So, jetzt habe ich geflasht Android Lollipop auf mein Nexus 5, ich sehe, es muss doch möglich sein, irgendwie, denn es ist für die SmartLock, und es irgendwie erkennt mein BT-LE Android-Uhr als verbunden.
private BluetoothAdapter getBTAdapter() {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2)
return BluetoothAdapter.getDefaultAdapter();
else {
BluetoothManager bm = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
return bm.getAdapter();
}
}
public boolean isBluetoothConnected() {
if(mBluetoothAdapter == null ||
(mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_DISCONNECTED
&& mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.A2DP) == BluetoothProfile.STATE_DISCONNECTED
&& mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEALTH) == BluetoothProfile.STATE_DISCONNECTED)
) {
Utils.logDebug(TAG, "GATT_SERVER " + mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.GATT_SERVER));
Utils.logDebug(TAG, "GATT " + mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.GATT));
return false;
}
return true;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese:
Kann ich nicht beantworten, ob deine Uhr angeschlossen ist . Kann sein, dass Ihre Uhr wirbt nur seinen Zustand, und das Telefon hört für diese Werbung. Es hängt davon ab, wie es umgesetzt wird.
Ihre BTLE Gerät eingetragen werden konnte, mit einem anderen Profil in das system. Die Android-API nur macht einige der profile (GATT, GATT_SERVER, Headset, etc). Allerdings gibt es noch andere profile, die es eingetragen werden konnte, als mit dem system, INPUT_DECVICE zum Beispiel. Aufruf getConnectedDevices() funktioniert nur für das GATT und GATT_SERVER Profil, aber wenn dein Gerät registriert ist, wie jedes andere Profil dann, dass die Methode nicht funktionieren.