如何通过蓝牙连接两个设备通过参数发送配对代码? JAVA,Android的

我正在尝试通过蓝牙连接两个设备。 我已经能够做到了,但是当连接启动时,操作系统要求我提供配对代码。

我想要做的是以编程方式提供该代码。 有没有办法连接这些设备并发送配对代码而不要求用户插入它?

注意:我确实有配对代码,我只是不希望用户插入它,而应用程序将从保存的位置获取它并使用它。

注意2:必须使用配对码。 因此,使用createInsecureRfcommSocketToServiceRecord()或不使用配对代码的类似连接不是一种选择。

通过reflection调用隐藏方法“setPin(byte [])”是解决方案。我共享代码。

private void PairDevice(BluetoothDevice pDevice, String pin) { try { Log.d("pairDevice()", "Start Pairing..."); Method pairMethod = pDevice.getClass().getMethod("setPin", byte[].class); Boolean lReturn = (Boolean) pairMethod.invoke(pDevice, pin.getBytes("UTF8")); if(lReturn.booleanValue()) { Log.d("pairDevice()", "Pairing Finished..."); Method bondMethod = pDevice.getClass().getMethod("createBond"); bondMethod.invoke(pDevice); } } catch(Exception ex) { Log.e("pairDevice()", ex.getMessage()); } } 

此外,这个答案有更多细节。 Android蓝牙固定function

我认为此链接将帮助您找到所需内容。

我更多地考虑“当您使用蓝牙API启动加密连接时自动执行配对”。 部分链接。 我没有尝试过,但认为自动配对意味着没有用户输入。