有没有人能给我提供Android 蓝牙
通信教程链接或提示?请不要告诉我参考BluetoothChat示例,我只能理解如何发现和连接设备,但不知道如何通过蓝牙发送和接收数据。
实际上,我正在开发一个Android和嵌入式蓝牙
设备项目。
请帮帮我。
有没有人能给我提供Android 蓝牙
通信教程链接或提示?请不要告诉我参考BluetoothChat示例,我只能理解如何发现和连接设备,但不知道如何通过蓝牙发送和接收数据。
实际上,我正在开发一个Android和嵌入式蓝牙
设备项目。
请帮帮我。
像其他人建议您进行蓝牙通信一样,我也使用了以下链接。
http://developer.android.com/guide/topics/connectivity/bluetooth.html
重要的是你只需要一个名为BluetoothChatService.java
的类。
该类具有以下线程:
当您调用BluetoothChatService的start函数时:
mChatService.start();
它启动接受线程,这意味着它将开始寻找连接。
现在当您调用
mChatService.connect(<deviceObject>,false/true);
这里的第一个参数是设备对象,您可以从配对设备列表中获取该对象,或者在扫描设备时,您将得到范围内的所有设备,可以将该对象传递给此函数,第二个参数是布尔值,用于建立安全或非安全连接。
connect
函数将启动连接线程,该线程将查找正在运行接受线程的任何设备。
当找到这样的设备时,接受线程和连接线程都将调用BluetoothChatService中的connected函数:
connected(mmSocket, mmDevice, mSocketType);
这种方法在两个设备中启动连接的线程: 使用此套接字对象,连接的线程获取与其他设备的输入和输出流。 并在while循环中调用read函数,以便始终尝试从另一个设备读取数据, 因此每当另一个设备发送消息时,该读取函数就会返回该消息。
BluetoothChatService还具有write
方法,它以byte []
作为输入,并调用连接的线程上的写入方法。
mChatService.write("your message".getByte());
在连接的线程中编写方法,只需将此字节数据写入另一个设备的输出流即可。
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”函数,并处理在另一个设备上接收到的消息即可。