2

这里已经有类似的问题,但答案和建议与旧版本的 Android 有关。我知道蓝牙堆栈从 4.2 开始已经完全修改,旧的解决方案不再起作用。

我尝试了所有旧的解决方案都无济于事。私有 API 的使用不再有效,因为它们已经改变。我不介意使用私有 API,但它必须适用于最新版本及更高版本(即 API 17+)

我正在尝试执行以下操作:

使用传统 PIN 配对在 Android 设备和嵌入式设备之间设置蓝牙配对,无需发现嵌入式设备,也无需用户手动输入 PIN。事实上,我根本不需要 PIN 输入对话框。

计划是这两个设备有一个预定义的共享秘密 PIN,这样我就可以通过编程方式执行配对,然后在它们之间打开一个 RFCOMM 连接。所有这一切都没有 UI。Android 程序知道嵌入式设备的硬件地址。

这里没有安全问题。该项目涉及尽可能简单地通过 BT 与附近的小型嵌入式设备交谈。

欢迎在 Android 4.2 (Jelly Bean) 上工作的想法,谢谢。

4

1 回答 1

0

原来一些问题出在嵌入式设备内部。在 Android 端,以下工作:

蓝牙套接字 s = null;

    try 
    {
        s = device.createInsecureRfcommSocketToServiceRecord(SerialPortServiceClass_UUID);

    }
    catch (IOException e) 
    {
        Log.e(TAG, "BT connect failed", e);
        return false;
    }

在哪里

private static final UUID SerialPortServiceClass_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
于 2014-07-17T22:51:28.593 回答