Я отправляю некоторые строковые данные с 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
.но я также не хочу, чтобы пользователь вводил пин-код во время сопряжения (безопасная коммуникационная розетка была бы невозможна без замены пин-кода, верно?: поправьте меня, если я ошибаюсь).так
Мой вопрос:
- Как мне связать hc-05 без вмешательства пользователя в ввод пин-кода? (Я пробовал с фильтром намерений и широковещательным приемником, но он не работает (система всегда получает первый приоритет перед моим получателем))
- Есть ли способ создать защищенный канал связи без его сопряжения?потому что я хочу только безопасный канал и обмен данными.
- Если я хочу ввести пин-код программно, могу ли я использовать
device.setpin()
или мне нужно для этого запустить AT-команду?