Вот сценарий:
Мне нужно написать приложение для Android, чтобы создать сокет RFCOMM для ПК с Bluetooth-ключом (сервер я тоже собираюсь написать).
Мое требование состоит в том, что пользователю не нужно связывать устройство вручную.
На самом деле, с большим взломом, я использую createInsecureRfcommSocket.
Небольшой сценарий: у меня есть приложение для Android, которое обменивается информацией с устройством Linux с открытым сокетом RFCOMM. Я могу вручную установить PIN-код на устройствах (жесткое кодирование - это вариант)
Я ищу разные дороги:
Написать оболочку JNI
Как это было сделано здесь Максом Келлерманном, я могу написать слой JNI, чтобы сделать весь этап сопряжения. Это должно быть хорошим вариантом, но есть проблема:
В NDK 4b нет библиотек libbluetooth, поэтому параметр -lbluetooth не работает, как и NDK v.3.
Опции:
- Найдите NDK 1.5 (который включает библиотеку Bluetooth). После нескольких дней поиска в Интернете я не смог узнать. Может у кого есть или знает где найти?
- Скомпилируйте libbluetooth для Android самостоятельно и используйте их для -lbluetooth. Не повезло там, я не в состоянии построить их. Любой намек?
Используйте что-то, доступное через API
Кто-нибудь знает, как я могу использовать createRfcommSocketToServiceRecord и заставить пользователя не сопрягать устройство вручную? Является ли это возможным? Как мне написать сервер?
Что-то, чего я не знаю
Может быть (конечно!) есть что-то, чего я не знаю. Может быть, я могу использовать что-то еще? Не RFCOMM? СДП?
Может быть, я могу вручную выполнить сопряжение с Android API?
Я надеюсь, что был достаточно ясен, если не просто спросить. И снова, как уже не в первый раз, я в ваших руках :)
Спасибо всем за поддержку, ребята!