简单的一个:ACTION_DISCOVERY_FINISHED会返回类似“找不到设备”的内容吗?

时间:2012-03-18 21:56:51

标签: android bluetooth broadcastreceiver

作为刚刚开始进入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。

如果它确实返回代码,我会喜欢链接/代码本身。

感谢阅读和帮助!

1 个答案:

答案 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