1

我正在尝试使用蓝牙将我的三星 Galaxy Tab 连接到我的 ArduinoBT。

我的代码:

    public void run()
{
    if (adapter == null)
    {
        return;
    }

    device = adapter.getRemoteDevice(macAddress);
    try {
        socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
        socket.connect();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

当我启动应用程序时,我有这个窗口:http: //i.stack.imgur.com/tlc3x.png

我写密码:0000

在日食中,我可以看到:

02-05 19:14:36.828: V/BluetoothSocket.cpp(4952): connectNative
02-05 19:14:41.296: V/BluetoothSocket.cpp(4952): ...connect(52, RFCOMM) = 111 (errno 111)
02-05 19:14:41.296: W/System.err(4952): java.io.IOException: Connection refused
02-05 19:14:41.296: W/System.err(4952):     at android.bluetooth.BluetoothSocket.connectNative(Native Method)
02-05 19:14:41.296: W/System.err(4952):     at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:236)
02-05 19:14:41.296: W/System.err(4952):     at iut.robot.BluetoothThread.run(BluetoothThread.java:38)

我不明白,当我使用这个应用程序时:https: //play.google.com/store/apps/details?id=mobi.dzs.android.BluetoothSPP&hl=fr 它工作得很好。

4

1 回答 1

1

您的蓝牙代码看起来不错。

以下是一些可能会解决您的问题的建议:

  • 在启动应用程序之前,从蓝牙设置中配对您的 ArduinoBT。

  • 确保只有一个应用程序连接到您的 ArduinoBT(重新启动平板电脑中的蓝牙以断开所有当前连接)

  • 确保蓝牙 Mac 地址格式正确,即xx:xx:xx:xx:xx:xx

  • 检查android应用程序是否具有所需的权限android.permission.BLUETOOTH,您也可以添加android.permission.BLUETOOTH_ADMIN,但您的情况不需要

编辑:

如果您与AurdionoBT正确配对并且在配对过程中已经进入pin,您可以尝试连接insecure RFcomm

socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
于 2013-02-05T18:54:17.700 回答