我要求用户打开蓝牙并在 120 秒内被发现。在 120 秒内,我将收到来自不同设备的文件传输警报。我想从该文件中获取文本。是接受文件并将其下载到蓝牙文件夹的最佳方式,还是我可以在应用程序中捕获它?
无论哪种方式,我如何抛出一条警告消息,说正在等待文件,并且在收到文件时删除警报。我也不认为 STATE_CONNECTING 指的是这个,因为在这个过程中状态永远不会改变。
目前我有一个while循环,文件不存在时等待超时......我知道很糟糕。
您使用的是 BluetoothChat 示例吗?
STATE_CONNECTING 是指您找到设备并尝试连接的时刻。要下载文件,您必须打开一个BluetoothSocket
蓝牙聊天示例,当套接字打开时,您将处于 STATE_CONNECTED 状态。
您可以在 ConnectedThread 的最开始,在读入 InputStream 之前显示一条警告消息,并在收到文件时在 InputStream 循环中取消它。如果文件从不发送,您还可以实现超时。
我不确定是否了解您的需求,但是,您也可以简单地使用蓝牙发送字符串,并将其保存在File
. 实施起来会更容易。
希望能帮助到你