在我的应用中,我想通过蓝牙发送和接收短信。我可以在我的列表视图中看到配对设备名称和地址的列表。但是当我试图将文本发送到配对设备时,什么也不会发生。在其他设备中,没有收到文本。
这是我将消息发送到配对设备的代码。
private void sendDataToPairedDevice(String message, String adress) {
byte[] toSend = message.getBytes();
try {
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(adress);
// BluetoothSocket socket
// =device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"));
BluetoothSocket socket = null;
Method m = null;
try {
m = device.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
} catch (Exception e) {
e.printStackTrace();
}
try {
socket = (BluetoothSocket) m.invoke(device, 1);
} catch (Exception e) {
e.printStackTrace();
}
OutputStream mmOutStream = socket.getOutputStream();
mBluetoothAdapter.cancelDiscovery();
socket.connect();
mmOutStream.write(toSend);
} catch (Exception e) {
Log.d("TAG", "Exception during write", e);
}
}
如果您是使用蓝牙API的新手,那么蓝牙样本实际上是完美的选择。
假设您仅在应用程序中使用一项活动,即蓝牙类别:
用于将文本发送到您已连接到的设备,请使用蓝牙类中的" sendmessage(字符串消息)"方法发送文本。
对于接收和处理文本,您还会在蓝牙chat类中的某个地方找到handlemessage(message msg)方法,然后进行此部分:
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
请参阅重新字符串?
这是您从其他设备收到的文本,现在您可以根据需要处理。
然后,只需更改蓝牙类类引用的主布局,然后在蓝牙聊天中注释或删除具有错误的零件,这些零件实际上是UI中您已删除或更改的零件。
。我知道代码听起来可能很混乱,但这是尽可能快地使用它的最简单方法,并且观看视频教程或文本教程数小时会使它更加复杂,相信我我以前尝试过。