57

谁能给我AndroidBluetooth通信教程链接或提示?请不要告诉我参考BluetoothChat的例子,我只能了解如何发现和连接设备,但不知道如何通过蓝牙发送和接收数据。

我实际上正在开发一个 Android 和嵌入式Bluetooth设备项目。请帮帮我。

4

1 回答 1

11

我也使用了以下链接,因为其他人建议您进行蓝牙通信。

http://developer.android.com/guide/topics/connectivity/bluetooth.html

事情就是你所需要的只是一堂课BluetoothChatService.java

这个类有以下线程:

  1. 接受
  2. 连接
  3. 连接的

现在,当您调用 BluetoothChatService 的启动函数时,例如:

mChatService.start();

它开始接受线程,这意味着它将开始寻找连接。

现在当你打电话

mChatService.connect(<deviceObject>,false/true);

这里第一个参数是设备对象,您可以从配对设备列表中获取,或者当您扫描设备时,您将获得范围内的所有设备,您可以将该对象传递给此函数,第二个参数是用于建立安全或不安全连接的布尔值。

connect函数将开始连接线程,该线程将查找任何正在运行接受线程的设备。

当找到这样的设备时,接受线程和连接线程都会调用 BluetoothChatService 中的连接函数:

connected(mmSocket, mmDevice, mSocketType);

此方法在两个设备中启动连接线程:使用此套接字对象连接线程获取到另一个设备的输入和输出流。并在 while 循环中调用readinputstream 上的函数,以便它始终尝试从其他设备读取,以便每当其他设备发送消息时,此读取函数都会返回该消息。

BluetoothChatService 也有一个write方法,它byte[]作为输入并在连接的线程上调用 write 方法。

mChatService.write("your message".getByte());

连接线程中的 write 方法只是将此字节数据写入另一个设备的输出流。

public void write(byte[] buffer) {
   try {
       mmOutStream.write(buffer);
    // Share the sent message back to the UI Activity
    // mHandler.obtainMessage(
    // BluetoothGameSetupActivity.MESSAGE_WRITE, -1, -1,
    // buffer).sendToTarget();
    } catch (IOException e) {
    Log.e(TAG, "Exception during write", e);
     }
}

现在要在两台设备之间进行通信,只需调用 mChatService 上的 write 函数并处理您将在另一台设备上收到的消息。

于 2014-01-12T07:03:56.703 回答