Где находится Bluetooth HID Profile? - PullRequest
3 голосов
/ 30 июля 2010

Я новичок в разработке для Android, и в качестве любимого проекта я хотел попробовать подключиться к устройству Bluetooth, используя профиль HID, используя телефон Android.Телефон, который я буду использовать, живой, и, по словам Samsung, он не поддерживает HID-профиль (http://ars.samsung.com/customer/usa/jsp/faqs/faqs_view_us.jsp?SITE_ID=22&PG_ID=2&PROD_SUB_ID=557&PROD_ID=560&AT_ID=281257).Теперь мой вопрос: где находится этот «профиль»?Это на аппаратном уровне или на программном уровне (я полагаю, последнее из других источников, которые я прочитал).И если это последнее, можно ли реализовать реализацию HID с использованием связи RFCOMM через Bluetooth (это единственный, на первый взгляд, жизнеспособный метод, который я вижу в API Android Bluetooth).

Я просто хочу убедиться, что понимаютехнологии, прежде чем я попытаюсь реализовать что-то, что может оказаться невозможным.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Если вы посмотрите на спецификации Bluetooth HID, доступные здесь: http://www.dawidurbanski.pl/public/download/projekty/bluepad/HID_SPEC_V10.pdf, вы быстро узнаете, что для подключения к устройству HID и реализации этого профиля вам нужно будет открытьдва канала L2CAP (прерывание и управление).

L2CAP недоступен на некоторых устройствах HTC Android и на некоторых устройствах Samsung.

Однако есть приложение Android, в котором реализован профиль HID, включаяканалы L2CAP и анализатор дескрипторов отчетов, поиск Teksoft Blueinput.Сообщается, что он работает только на некоторых устройствах, исходя из ограничений, которые я представил выше.

Если Google не реализует полный стек Bluetooth и не предоставляет его разработчикам, создание этого профиля HID не является тривиальной задачей.

2 голосов
/ 30 июля 2010

Поскольку профиль HID находится на том же уровне, что и RFCOMM, я не думаю, что вы можете реализовать первый поверх последнего.

Конечно, профиль HID реализован программно, но в стеке Android он будет находиться на уровне ниже уровня Java. Если я правильно понял, он должен быть включен на уровне ядра (поскольку HID добавляет в основном драйверы).

Поглядывая вокруг, я нашел эту запись , где этот парень добавил профиль HID на платформу Android, поиграв с каким-то пользовательским образом Android и включив некоторые функции ядра (но в основном, чтобы иметь возможность подключаться к Продукт Apple).

...