Вопрос, который вы упомянули, очень полезен, поскольку он предоставляет обходной путь для ситуации, когда обычный вызов .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-адреса вашего устройства, как это было раньше.
Если у вас возникли проблемы с подключением, вам нужно быть конкретным в отношении того, что на самом деле происходит; то есть, какие исключения вы получаете, и так далее.