android - 简单的一个 : does ACTION_DISCOVERY_FINISHED return something like a "no devices found"?

标签 android bluetooth broadcastreceiver

作为刚开始接触 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/

相关文章:

java - 使用Zxing库连续扫描二维码,无法打开相机

android - 显示 Android 传感器列表

java - 当 Activity 和/或应用程序关闭时保持广播接收器运行?

android广播接收器android 4

未为超链接加载的 Android webview 内容包含哈希

java - 如何先更新变量然后在java中执行其余代码

java - 在 Android 上使用蓝牙的服务发现失败异常

android - 通过 NodeJS 和 Termux 与 Android 蓝牙设备通信

iOS/Swift/CoreBluetooth Ble 通知不工作

android - 如何获取从 onReceive() 触发的 Intent 的名称或类型