Bonding supposed to be once in a lifetime event. At that time "bond" is created and both sides of connection save keys. For further connections link is encrypted without bonding. The interesting part is that first time around you will see encryption following by bonding. So I guess when you receive the "encrypted" callback you can check if device is bonded and if so start communicating.