Kann mir jemand beibringen, wie ich herausfinden kann, ob Bluetooth an ein anderes Gerät angeschlossen ist (Handy, Headset, etc.)Wie kann man herausfinden, ob Bluetooth angeschlossen ist?
2
A
Antwort
4
ich weiß nicht von irgendeiner Weise eine Liste der aktuell angeschlossenen Geräte zu bekommen, aber Sie können für neue Verbindungen hören die ACL_CONNECTED Absicht mit: http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_ACL_CONNECTED
Diese inte Es enthält ein zusätzliches Feld für das Remote-Gerät, mit dem die Verbindung hergestellt wird.
Auf Android-Geräten sind alle Bluetooth-Verbindungen ACL-Verbindungen. Wenn Sie sich für diese Absicht anmelden, erhalten Sie alle neuen Verbindungen.
Also, Ihr Empfänger würde wie folgt aussehen:
public class ReceiverBlue extends BroadcastReceiver {
public final static String CTAG = "ReceiverBlue";
public Set<BluetoothDevice> connectedDevices = new HashSet<BluetoothDevice>();
public void onReceive(Context ctx, Intent intent) {
final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (BluetoothDevice.ACTION_ACL_CONNECTED.equalsIgnoreCase(action)) {
Log.v(CTAG, "We are now connected to " + device.getName());
if (!connectedDevices.contains(device))
connectedDevices.add(device);
}
if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equalsIgnoreCase(action)) {
Log.v(CTAG, "We have just disconnected from " + device.getName());
connectedDevices.remove(device);
}
}
}
0
Ich denke getBondedDevices() wird Ihnen helfen :)
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
// If there are paired devices
if (pairedDevices.size() > 0) {
// Loop through paired devices
for (BluetoothDevice device : pairedDevices) {
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
}
}
Thanks :)
Ich habe dieses versucht. Immer, wenn ich ein Gerät anschließe, wird "ACTION_ACL_CONNECTED" angezeigt, aber es zeigt sofort "ACTION_ACL_DISCONNECTED" an. Mache ich irgendetwas falsch? –
Das ist seltsam. Das hört sich so an, als würde die Verbindung nur kurz aufrechterhalten und dann verloren gehen. Ich bin mir nicht sicher, warum Sie das bekommen. – Tom
'Unter Android sind alle Bluetooth-Verbindungen ACL-Verbindungen." Sind Sie sicher? hast du einen Link dafür ?! – Soheil