作为刚开始接触 Android/Java 编程的人,我阅读了 https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_DISCOVERY_FINISHED 上的文档。我试图弄清楚当蓝牙 12 秒扫描完成时我是否只会得到 ACTION_DISCOVERY_FINISHED,并且它没有设备返回,或者它是否在每次扫描时返回 ACTION_DISCOVERY_FINISHED,并且它有某种返回我在文档中看不到的代码?
场景是:我正在构建一个可以收听 BT 的广播接收器,如果它打开,开始发现并结束发现并且什么也没发现,我想关闭 BT。
如果它返回代码,我会喜欢一个链接/代码本身。
感谢阅读和帮助!
最佳答案
ACTION_DISCOVERY_FINISHED 告诉您发现已经完成,不多也不少。
有一个单独的 Intent,ACTION_FOUND,在发现设备时发送。
为了完成你想要的功能,你想要 checkin 你的广播接收器
intent.getAction().equals(BluetoothDevice.ACTION_FOUND)
如果收到一个 intent,其计算结果为 true,那么您就发现了一个 BluetoothDevice。如果您想在该设备上进行处理,您可以通过以下方式访问它
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
编辑:如果您只想知道没有找到任何设备,您可以在 ACTION_FOUND 处理代码中设置一个标志。如果未设置标志,则未找到任何设备。
EDIT2:蓝牙设备发现的过程将发出这个 Intent 序列:
1 ACTION_DISCOVERY_STARTED 0 个或多个 ACTION_FOUND 1 ACTION_DISCOVERY_ENDED
关于android - 简单的一个 : does ACTION_DISCOVERY_FINISHED return something like a "no devices found"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762677/