Un grand merci à Skylarsutton pour sa réponse. Je poste ce comme une réponse à son, mais parce que je suis poster du code, je ne peux pas répondre comme un commentaire. J'ai déjà upvoted sa réponse ne suis pas à la recherche pour tous les points. Juste payer avant.
Pour une raison quelconque BluetoothAdapter.ACTION_ACL_CONNECTED ne peut pas être résolu par Android Studio. Peut-être qu'il était déconseillé dans Android 4.2.2? Voici une modification de son code. Le code d'enregistrement est le même, le récepteur code diffère légèrement. - Je l'utiliser dans un service qui met à jour un Bluetooth connecté drapeau que d'autres parties de l'application de référence.
public void onCreate() {
//...
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
private final BroadcastReceiver BTReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
//Do something if connected
Toast.makeText(getApplicationContext(), "BT Connected", Toast.LENGTH_SHORT).show();
}
else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
//Do something if disconnected
Toast.makeText(getApplicationContext(), "BT Disconnected", Toast.LENGTH_SHORT).show();
}
//else if...
}
};