将Android与Arduino(HC-05)配对,而无需手动输入密码

时间:2019-02-05 07:22:35

标签: android arduino bluetooth-lowenergy

我正在将一些String数据从android发送到HC-05的arduino。

当前,我可以成功地将数据从android发送到hc-05(带有或不带有配对),并且我已经使用此方法创建了套接字

private BluetoothSocket createBluetoothSocket(BluetoothDevice device) throws IOException {

            try {
                final Method  m = device.getClass().getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] { UUID.class });
                return (BluetoothSocket) m.invoke(device, MY_UUID);
            } catch (Exception e) {
                Log.e(TAG, "Could not create Insecure RFComm Connection",e);
            }

        return  device.createRfcommSocketToServiceRecord(MY_UUID);
    }

您可以清楚地看到。它首先尝试创建InsecureRfcommSocket。它使用不安全的连接进行连接。可能会导致mitm攻击,因此我想使用createRfcommSocketToServiceRecord的安全通信。但我也不希望用户在配对时输入密码(没有正确的密码交换就无法使用安全的通讯插座吗?如果我错了,请纠正我)。

我的问题是:

  1. 如何在不干扰引脚输入的情况下配对hc-05?(我尝试过使用Intent过滤器和广播接收器,但无法正常工作(系统始终优先于接收器)
  2. 有没有办法创建安全的通讯通道而不配对?因为我只需要安全的通道和数据交换。
  3. 如果我想以编程方式输入密码,我可以使用device.setpin()还是应该为此触发AT-Command?

0 个答案:

没有答案