【问题标题】:Howt to connect two devices via bluetooth sending the pairng code by parameter? JAVA-Android如何通过蓝牙通过参数发送配对码连接两台设备? JAVA-安卓
【发布时间】:2013-08-07 17:05:44
【问题描述】:

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

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

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

注意_2:必须使用配对码。因此,不能使用不使用配对代码的 createInsecureRfcommSocketToServiceRecord() 或类似方法进行连接。

【问题讨论】:

    标签: java android bluetooth


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为this link 会帮助你找到你需要的东西。

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

      【讨论】:

      • 我之前读过它来创建连接功能,但它使用“询问用户配对码”的方式。
      • 我添加了一条评论,说明我为什么链接该特定页面。
      • 其实我必须使用配对码。让我介绍一些背景。当应用程序尝试连接时,它将启动一个二维码阅读器,将读取的二维码代表配对码。必须使用该配对代码创建连接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多