【问题标题】:Android Bluetooth PIN pairing without user interface on Android 4.2+Android 4.2+ 上无用户界面的 Android 蓝牙 PIN 配对
【发布时间】:2013-07-17 11:00:07
【问题描述】:

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

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

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

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

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

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

非常欢迎可能适用于 Android 4.2 (Jelly Bean) 的想法,谢谢。

【问题讨论】:

    标签: android bluetooth android-4.2-jelly-bean


    【解决方案1】:

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

    BluetoothSocket 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 2013-01-20
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      相关资源
      最近更新 更多