这里也有类似的问题,但答案和建议与旧版本的Android有关。据我所知,蓝牙堆栈已经从4.2开始完全修改,旧的解决方案不再适用了。
我尝试过所有旧解决方案都无济于事。私有API的使用不再有效,因为它们已经发生了变化。我不介意使用私有API,但它必须适用于最新版本及更高版本(即API 17 +)
我正在尝试执行以下操作:
使用传统的PIN配对在Android设备和嵌入式设备之间设置蓝牙配对,而不会发现嵌入式设备,用户也不必手动输入PIN。实际上我根本不需要PIN输入对话框。
计划是这两个设备具有预定义的共享密钥PIN,以便我可以以编程方式执行配对,然后在它们之间打开RFCOMM连接。所有这些都没有UI。 Android程序已知嵌入式设备的硬件地址。
这里没有安全问题。该项目涉及通过BT尽可能简单地与nearyby,小型嵌入式设备进行通信。
可能适用于Android 4.2(Jelly Bean)的想法非常受欢迎,谢谢。
答案 0 :(得分:0)
事实证明,嵌入式设备内部存在一些问题。在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");