当前位置: 首页 > 知识库问答 >
问题:

如何通过Android bluetooth serial RFCOMM将串行通信转储为文件

麻烨
2023-03-14

但是,代码函数类似于

1-Android listen

2-PC发送数据,Android接受连接读取数据和写入文件

代码是这个文件

https://github.com/googleSamples/android-BluetoothChat/blob/master/application/src/main/java/com/example/android/BluetoothChat/BluetoothChatService.java

具体来说

    public void run() {
        Log.i(TAG, "BEGIN mConnectedThread");
        byte[] buffer = new byte[1024];
        int bytes;

        // Keep listening to the InputStream while connected
        while (mState == STATE_CONNECTED) {
            try {
                // Read from the InputStream
                bytes = mmInStream.read(buffer);

                // ==> This is where I wrote to file
                // ==> Standard Android Java code to write 
                // ==> to output file stream

                // Send the obtained bytes to the UI Activity
                // ==> Commented out because this can not be done here
                // ==> NEED TO BE DONE WHEN ALL DATA IS READ
                // mHandler.obtainMessage(Constants.MESSAGE_READ, bytes, -1, buffer)
                //      .sendToTarget();
            } catch (IOException e) {
                Log.e(TAG, "disconnected", e);
                connectionLost();
                break;
            }
        }
    }

共有1个答案

扶隐水
2023-03-14

除非您有规则和/或某种协议,并开始解析接收到的数据,否则您永远无法确定远端已经发送完它想发送的数据。

添加/创建一个简单的协议,该协议包含一个头部和一个长度字段,允许您接收,并且知道在接收循环中会发生什么。

作为经验法则;永远不要认为你会在一次读取中得到整个数据包。相反,在最终处理数据并提取符合规范的完整“数据包”之前,缓冲接收到的数据并允许多次读取。

 类似资料:
  • 问题内容: 我正在考虑AJAX应用程序必须轮询轮询更新有多大限制,而最理想的是javascript能够建立与服务器的真正双向连接。我想知道是否存在将javascript与可以建立tcp连接的浏览器插件集成的方法,以便可以将数据传入和传出浏览器插件。 问题答案: 这是具有类似方法的实现: 套接字 它使用Java Applet,并将其API桥接到JavaScript,有趣的是… 这里是另一个: 套接字

  • 这是期望的输入和期望的输出。我不熟悉SQL或Presto中使用的术语,文档似乎指向使用,但我认为这里的问题是动态创建列,但我很好奇在列已知且有限的情况下是否可以这样做。 则成为: 我能得到的最接近的方法是使用获取一组,可以在输出中一次提取一个。然而,理想的解决方案是不必显式列出最终要输出的每个,而是分解或滚动出的所有键:

  • 问题内容: 如何使用,或其他工具通过命令行将图像转换为黑白(灰度)? 问题答案: 如果已安装, 如果您不担心丢失原始文件:。

  • 问题内容: 在Python中,我有一个像这样的字符串: 如何将其解码为普通字符串,例如: 问题答案: 如果您的输入值为字符串,请使用进行转换: 如果输入值是一个对象,则可以使用方法: 演示: 可以使用编解码器解码Python 2个字节的字符串: 对于 Unicode 文字(例如带前缀),请使用。

  • 问题内容: 我有一个猫鼬的文档,我想在JSON编码之前进行扩展并作为响应发送出去。如果我尝试向文档添加属性,则将其忽略。该属性不会出现无法进行正常扩展的情况。奇怪的是,它可以正常工作并返回具有所有正确属性的对象。有一个更好的方法吗? 问题答案: 猫鼬继承自s,后者有一个方法。我相信您要寻找的应该是的结果。 http://mongoosejs.com/docs/api.html#document_D

  • 我正在进行spring webflux文件上传。我想从控制器上传文件到amazon S3 bucket上。在控制器中,我收到了以下物体 从文件部分。content()我可以 我的问题是如何转换这个通量