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

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

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

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

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

解决方法:

通过反射调用隐藏的方法“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 bluetooth setpin function

上一篇:Android蓝牙设备只扫描一次


下一篇:在PC(客户端)上初始化Android(服务器)和bluecove之间的蓝牙连接