【问题标题】:connect to non-discoverable bluetooth device连接到不可发现的蓝牙设备
【发布时间】:2010-10-13 10:56:21
【问题描述】:

我正在为安卓开发一个应用程序。只是一个一般性问题,是否可以连接到不可公开发现的设备?

提前致谢。

【问题讨论】:

    标签: android java-me bluetooth


    【解决方案1】:

    如果您之前已与该设备配对,则即使该设备未处于可发现模式,也可以再次连接。看到这个帖子: programmatically-connect-to-paired-bluetooth-device

        // use paired devices or create a BluetoothDevice using a mac address
        //Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
        BluetoothAdapter myAdapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice remoteDevice = myAdapter.getRemoteDevice("00:00:00:00:00:00");
        BluetoothSockt btSocket = remoteDevice.createRfcommSocketToServiceRecord(UUID);
        btSocket.connect();
        //get input and output stream etc...
    

    【讨论】:

      【解决方案2】:

      通过可发现我假设您的意思是响应来自另一台设备的设备搜索。一些制造商也将其称为可见的。 根据设备制造商的不同,某些设备允许打开蓝牙并将可见性/发现能力设置为关闭。 因此,如果您已经知道设备的蓝牙地址(MAC 地址),即使设备不可发现/可见,您也可以直接连接到它。 在实践中这是一件好事,许多制造商通过让设备仅在特定时期(如配对过程)可见来实现这一点,或者具有明确的菜单选项以在特定时期打开发现能力。 从安全角度来看,这是一种很好的做法,因为它可以防止设备跟踪/黑客攻击。

      例如,默认情况下,当蓝牙打开时,iPhone 是不可发现的(但您仍然可以连接到它),只有当您从设置菜单进入蓝牙菜单时才能发现它。

      【讨论】:

        【解决方案3】:

        在蓝牙标准下是可能的。我已经多次使用我提前知道的 MAC 地址将 Bluegiga 的两个模块连接在一起。

        Android 将允许您使用 createInsecureRfcommSocketToServiceRecord 执行此操作

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-21
          • 2022-01-23
          • 2012-04-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多