Соедините Android с Arduino (HC-05), не вводя пин-код вручную - PullRequest
0 голосов
/ 05 февраля 2019

Я отправляю некоторые строковые данные с Android на Arduino, который является HC-05.

В настоящее время я могу успешно отправить данные с 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.Это использует небезопасное соединение для подключения.AFAIK это может вызвать митм атаки, поэтому я хочу использовать безопасную связь, которая createRfcommSocketToServiceRecord.но я также не хочу, чтобы пользователь вводил пин-код во время сопряжения (безопасная коммуникационная розетка была бы невозможна без замены пин-кода, верно?: поправьте меня, если я ошибаюсь).так

Мой вопрос:

  1. Как мне связать hc-05 без вмешательства пользователя в ввод пин-кода? (Я пробовал с фильтром намерений и широковещательным приемником, но он не работает (система всегда получает первый приоритет перед моим получателем))
  2. Есть ли способ создать защищенный канал связи без его сопряжения?потому что я хочу только безопасный канал и обмен данными.
  3. Если я хочу ввести пин-код программно, могу ли я использовать device.setpin() или мне нужно для этого запустить AT-команду?
...