Wie um zu überprüfen, ob die bluetooth-Verbindung zu einem Gerät getrennt ist?
Ich möchte wissen, Wann meine bluetooth-Verbindung zum Gerät getrennt wird. Ich fand das zu überprüfen:
IntentFilter filter1 = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED);
IntentFilter filter2 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
IntentFilter filter3 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiver, filter1);
this.registerReceiver(mReceiver, filter2);
this.registerReceiver(mReceiver, filter3);
//The BroadcastReceiver that listens for bluetooth broadcasts
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
//Device found
}
else if (BluetoothAdapter.ACTION_ACL_CONNECTED.equals(action)) {
//Device is now connected
}
else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
//Done searching
}
else if (BluetoothAdapter.ACTION_ACL_DISCONNECT_REQUESTED.equals(action)) {
//Device is about to disconnect
}
else if (BluetoothAdapter.ACTION_ACL_DISCONNECTED.equals(action)) {
//Device has disconnected
}
}
};
Aber die ACTION_ACL_FOUND
, ACTION_ACL_DISCONNECT_REQUESTED
und die ACTION_ACL_DISCONNECTED
im onReceive
Methode kann nicht aufgelöst werden oder ist nicht ein Feld.
So, warum Sie nicht gelöst werden können?
Oder gibt es eine andere, neue Lösung?
Nicht du meinst
Ich bezog mich tho: stackoverflow.com/questions/4715865/...
Ändern Sie alle Referenzen auf die Felder, die nicht funktionieren zu
Aber die ACTION_DISOVERY_FINISHED funktioniert auf BluetoothAdapter. Also ich habe gerade die 3, die nicht funktioniert?
BluetoothDevice.ACTION_ACL_FOUND
? Diese Felder existieren nicht in BluetoothAdapter
.Ich bezog mich tho: stackoverflow.com/questions/4715865/...
Ändern Sie alle Referenzen auf die Felder, die nicht funktionieren zu
BluetoothDevice
. Die Felder existieren nicht in BluetoothAdapter
. (developer.android.com/reference/android/bluetooth/...)Aber die ACTION_DISOVERY_FINISHED funktioniert auf BluetoothAdapter. Also ich habe gerade die 3, die nicht funktioniert?
InformationsquelleAutor silvia_aut | 2013-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie Ihre
onReceive
:Die 3 Felder, die Sie erwähnen, gibt es nicht in BluetoothAdapter:(http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html)
Sind Sie in BluetoothDevice:
(http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_ACL_CONNECTED)
Sind Sie auch nur zu registrieren, hören Sie für 3 handeln, so ist Sie nicht wirklich brauchen, die anderen, es sei denn, Sie registrieren für Sie woanders.
Sie haben
<uses-permission android:name="android.permission.BLUETOOTH" />
in Ihrem manifest?Sicher. Ich bekomme die bluetooth-Verbindung aber nicht die Meldung für diese
Hmm. Ich würde es tun, mit BluetoothAdapter, werfen Sie einen Blick auf diese: (stackoverflow.com/a/13177619/833647). Viel Glück!
InformationsquelleAutor Ken Wolf