作为刚刚开始进入Android / Java编程的人,我已经阅读了https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_DISCOVERY_FINISHED的文档,我正在试图弄清楚当蓝牙12秒扫描时我是否只会获得ACTION_DISCOVERY_FINISHED已完成,它返回WITH NO DEVICES,或者每次扫描时它是否返回ACTION_DISCOVERY_FINISHED,并且它有一些我在文档中看不到的返回代码?
场景是:我正在构建一个可以收听BT的广播接收器,如果它已打开,则启动发现并结束发现并找不到任何内容,我想关闭BT。
如果它确实返回代码,我会喜欢链接/代码本身。
感谢阅读和帮助!
答案 0 :(得分:1)
ACTION_DISCOVERY_FINISHED告诉您发现已经完成,不多或少。
发现设备时会发送一个单独的Intent,ACTION_FOUND。
要完成所需的功能,您需要检入广播接收器
intent.getAction().equals(BluetoothDevice.ACTION_FOUND)
如果收到的意图使得评估结果为true,那么您已经发现了一个BluetoothDevice。如果要在该设备上进行处理,可以通过
访问它BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
编辑:如果您只想知道没有找到设备,您只需在ACTION_FOUND处理代码中设置一个标志即可。如果未设置标志,则未找到任何设备。
EDIT2:蓝牙设备发现过程将发出这一意图序列:
1 ACTION_DISCOVERY_STARTED 0或更多ACTION_FOUND 1 ACTION_DISCOVERY_ENDED