Как на Android перехватить Bluetooth-пакеты в "сыром" виде?
С помощью BroadcastReceiver() я получаю интент, а затем из него всю необходимую информацию об Bluetooth-устройстве. Как из полученного интента получить данные об устройстве в "сыром" виде, то есть битовое представление? По типу "0x1DFF2D0102000110A3BB72A526EA44BC8B9B4F0D0B341CEACA3DC7E30CEA"
private val mReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
try {
var action = ""
if (intent!=null) {
action = intent.action.toString()
}
when(action){
BluetoothAdapter.ACTION_STATE_CHANGED ->{
}
BluetoothAdapter.ACTION_DISCOVERY_STARTED ->{
binding.progressBar.visibility = View.VISIBLE
Snackbar.make(binding.root, "Scanning", Snackbar.LENGTH_LONG).show()
}
BluetoothDevice.ACTION_FOUND ->{
val device = intent?.getParcelableExtra<BluetoothDevice>(BluetoothDevice.EXTRA_DEVICE)
if(device!=null) {
Snackbar.make(binding.root, "Found ${device.name} ${device.address}", Snackbar.LENGTH_LONG).show()
}
}
BluetoothAdapter.ACTION_DISCOVERY_FINISHED ->{
binding.progressBar.visibility = View.GONE
}
}
} catch (e:SecurityException){
}
}
}
Источник: Stack Overflow на русском