Я полный новичок в мире Android. Пожалуйста, простите меня, если мой вопрос слишком наивен.Совместимость Bluetooth OOB действительно поддерживается в Android?
Я работаю над примером приложения, чтобы реализовать Bluetooth-сопряжение между Linux Box (FC-21 с Bluez-5.42) и планшет Android. Я использую NFC для передачи имени Bluetooth, адреса и данных OOB с ПК на Android. Я могу отправить вышеуказанные данные с ПК на Android через NFC (луч точно), и я могу разобрать и декодировать все данные со стороны Android. С адресом Bluetooth ящика Linux, доступного на Android, я могу позвонить CreateBond(), чтобы соединить планшет Android с Linux Box. Я тестировал эту часть, и она работает так, как ожидалось.
Проблема с этим методом заключается в том, что во время сопряжения Bluetooth используется цифровая сопоставление или ассоциация связи с ключом, что, по моему мнению, является аберрацией для пользователя, когда он использует NFC для сопряжения. Поскольку у меня уже есть данные OOB на ПК, я бы хотел использовать ассоциацию OOB для сопряжения, чтобы пользовательский интерфейс не был скомпрометирован.
Для этого, когда я заменяю CreateBond() на CreateBondOutOfBand() [используя отражение], запрос на соединение не отправляется с Android на ПК с Linux.
try {
showLog("Pairing started");
Method m = bDev.getClass().getMethod("createBondOutOfBand", byte[].class, byte[].class);
showLog("Found method");
Boolean flag = (Boolean) m.invoke(bDev, Hash, Rand,(Object[]) null);
//Method m = bDev.getClass().getMethod("createBond", (Class[]) null);
//Boolean flag = (Boolean) m.invoke(bDev, (Object[]) null);
if(flag)
showLog("Pairing successfully finished.");
else
showLog("Pairing failed");
} catch (Exception e) {
showLog("Pairing failed.");
}
Я искал в Интернете, но не нашел конкретных доказательств того, что соединение OOB может быть реализовано на Android.
Кроме того, чтобы проверить поведение собственного Android, я создал тег NFC с именем Bluetooth, адресом и данными OOB в ящике Linux. Когда я держал тег против планшета Android, было запущено спаривание Блюеттота, но оно все еще не использовало модель ассоциации OOB.
Мои вопросы заключаются в следующем,
- ли OOB модель ассоциации действительно поддерживается на Android?
- Если поддерживается модель ассоциации OOB, используется CreateBondOutOfBand() используемый API или какой-либо другой API, который мне нужно использовать?
Любые материалы были бы весьма полезными.
Спасибо,
Саи
Эй, мы сталкиваемся с той же проблемой. Вы нашли решение? – Seynorth
Здравствуйте, я также хочу знать, нашли ли вы ответ – ymerdrengene
@Seynorth, ymerdrengene Извините, у меня не было времени оглянуться назад. – saai63