当前位置: 首页 > 面试题库 >

如何通过蓝牙通过参数发送配对代码来连接两个设备?安卓

夹谷沛
2023-03-14
问题内容

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

我要做的是以编程方式提供该代码。有没有一种方法可以连接这些设备并发送配对代码而无需用户插入?

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

注意_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网站上运行bluetoothChat示例代码,但没有成功。 现在,我继续研究我发现的这段代码,虽然它在我的设备上编译,但它们之间没有连接。 有人看到下面的代码有什么问题吗?如果有人知道android上蓝牙的一些好资源,如果他们能与我分享,我将不胜感激!

  • 我正在创建一个Qt应用程序,在这里我将iOS与BLE板连接起来。 在阅读了near中的ble组件后,我像这样连接Android设备: 我在Android系统上找到了Mac地址 QBluetoothDeviceInfo 但是iOS没有从布尔那里得到苹果电脑地址,只有UUID。我试着在doc上在线搜索,但是我没有找到关于通过uuid连接ios和蓝牙服务的东西。 有一个模式转换uuid在mac地址或有一

  • 我正在尝试通过蓝牙连接两台Android设备(已经配对),并在其中一台设备上自动访问互联网。 这可以通过在设置中访问并启用以下复选框来实现: 你知道我怎么用程序来做这个吗? 谢谢。

  • 它是蓝牙耳机还是手机? 如何在android代码中区分蓝牙耳机和支持蓝牙的android设备。 我正在开发一个小应用程序,我有一个功能,阻止通过蓝牙数据传输,但它需要允许通过蓝牙耳机通信。 > 我引用了示例和代码,因为它们建议我仅配对/取消配对蓝牙设备。Android:如何以编程方式配对蓝牙设备? 获取所有连接的设备。在Android中,如何获取已连接蓝牙设备的配置文件? 我是否可以在设备中获得与

  • 我正在尝试制作一个应用程序,它使用Android的新蓝牙低能耗API。为此,我从API Level18附带的BLE示例开始。 当我读到Android不能充当外围设备时,我将Android手机置于中央模式,扫描周围的BLE设备。为此,我用一个模拟心脏传感器的北欧平台做了一些测试。一切都以完美的方式运作! 多谢了。 编辑:经过一些艰苦的测试,我在AOSP页面上提出了一个问题。这里可以查