Простой приемник данных Bluetooth для Android
Как новичок в программировании на Android, у меня возник вопрос: я хочу получать данные (два байта) от блютуз / последовательного модуля, подключенного к микропроцессору. Эти данные должны выводиться на экран и обновляться, скажем, раз в секунду. Я уже нашел это: Как предотвратить соединение Android Bluetooth RFCOMM от смерти сразу после.connect()? Какой должен быть рабочий код, но ничего не происходит. Я изменил MAC-адрес на 00:11:12:05:03:67, который должен соответствовать моему модулю Bluetooth.
Я иду в этом направлении совершенно неправильно? Я думаю, что я хочу, это довольно просто: просто односторонняя передача данных через Bluetooth.
Любые мысли будут очень цениться.
С наилучшими пожеланиями,
Kevin
1 ответ
Вопрос, на который вы ссылались, очень полезен, поскольку он предоставляет обходной путь для ситуации, когда обычный вызов .createRfcommSocketToServiceRecord()
не работает Я лично использовал это временное решение в проекте, который я сейчас делаю. Что я делаю, я пытаюсь .createRfcommSocketToServiceRecord()
сначала, и если это не удается, мой код пытается соединиться с .getClass().getMethod("createRfcommSocket", new Class[]{int.class});
обходной путь. Поэкспериментировав с рядом печатных плат Bluetooth-to-serial, некоторые из них имеют тенденцию быть немного "неуклюжими", и последний метод отражения работает, когда .createRfcommSocketToServiceRecord()
не.
Однако... хотя тот вопрос, на который вы ссылались, дает очень полезный компактный фрагмент кода, я не думаю, что это лучшее место для вас, чтобы начать. Вам следует начать с документации по Bluetooth для Android, которая очень хорошо объясняет весь процесс, включая использование отдельных Threads
для обработки обнаружения, подключения и т. д. На самом деле очень легко начать работу с использованием исходного кода чата Bluetooth. С его помощью вы можете очень быстро начать работу и подключиться к последовательному Bluetooth-модулю. Вам просто нужно убедиться, что вы изменили UUID на тот, который требуется для профиля последовательного порта (SPP):
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
Надеюсь, этого будет достаточно, чтобы иметь простое приложение, которое будет общаться с вашим последовательным модулем Bluetooth. Пример приложения Bluetooth Chat также предоставляет вам диалоги, которые обрабатывают обнаружение устройства, сопряжение и все такое хорошее, так что вам не придется возиться с жестким кодированием MAC-адреса вашего устройства, как это было раньше.
Если у вас есть проблемы с подключением, вам нужно быть конкретным в том, что на самом деле происходит; то есть, какие исключения вы получаете, и так далее.