在安卓系统中发送蓝牙字符串

5

好的,我有一个bluetooth.java类,希望它能发送我的字符串...但是每当我尝试发送命令时,我的错误消息只会显示nope。我是否遗漏了一些重要的东西?在那里我只有这两个功能..

void openBT() throws IOException {

    UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
    try {
        mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
    } catch (IOException e) {
        Toast.makeText(getApplicationContext(), "Unable to create socket", Toast.LENGTH_LONG).show();
    }
    try {
        mmSocket.connect();
    } catch (IOException e) {
        Toast.makeText(getApplicationContext(), "Unable to connect to socket", Toast.LENGTH_LONG).show();
    }
    mmOutputStream = mmSocket.getOutputStream();
    mmInputStream = mmSocket.getInputStream();
}

void sendData2() throws IOException {
    if (BtCommand == "0"){
        msg = "Fan2 Off";
    }
    if (BtCommand == "1"){
        msg = "Fan2 On";
    }

    mmOutputStream.write(msg.getBytes());
}

这些是我设置的唯一内容

  BluetoothSocket mmSocket;
BluetoothDevice mmDevice;
String BtCommand;
OutputStream mmOutputStream;
InputStream mmInputStream

我确定是 openBT 函数出了问题,我已经成功与设备配对。

1个回答

0

您确定选择的UUID吗?

UUID列表

或者,尝试重新设计您的代码。我使用2个线程(一个用于连接,第二个用于连接和通信)


我不确定,这个UUID是否对应所有的蓝牙设备。当我尝试时,我是在两个安卓手机(SONY Z1和SONY Z5)之间进行的。 - David Hasselhof the 2nd
我正在使用00001112-0000-1000-8000-00805f9b34fb。 - Majkl
一些指南:https://dev59.com/VmYr5IYBdhLWcg3wFGZS https://dev59.com/VHI-5IYBdhLWcg3wPFx2 - Majkl
仍然无法工作...不知道为什么,我甚至尝试了一些随机的蓝牙终端应用程序,它们甚至都无法连接。 - David Hasselhof the 2nd
尝试在另一部手机上进行测试(可能是硬件或设置问题)。 - Majkl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接