вопрос вы упоминается там очень полезной, поскольку она обеспечивает обходной путь для ситуации, когда обычный вызов .createRfcommSocketToServiceRecord()
не работает. Я лично использовал это обходное решение в проекте, который я сейчас делаю. Что я делаю, я сначала пытаюсь позвонить .createRfcommSocketToServiceRecord()
, и если это не удается, мой код затем пытается подключиться с обходным решением .getClass().getMethod("createRfcommSocket", new Class[]{int.class});
. Проведя эксперименты с несколькими печатными платами Bluetooth-to-serial, некоторые из них, как правило, немного «неудобны», и последний метод отражения работает, когда .createRfcommSocketToServiceRecord()
этого не делает.
Однако ... хотя этот вопрос, на который вы ссылаетесь, дает очень полезный компактный код, я не думаю, что это лучшее место для вас. Место, которое вы должны начать, - Android's Bluetooth documentation, что объясняет весь процесс очень хорошо, в том числе, как использовать отдельный Threads
для обработки обнаружения, подключения и т. Д. На самом деле очень легко начать работу с Bluetooth Chat source code. Используя это, вы можете быстро встать и работать и подключиться к модулю Bluetooth-serial. Вам просто нужно, чтобы убедиться, что вы изменить UUID, которая требуется для последовательного порта Profile (SPP):
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
что мы надеемся, будет достаточно иметь простое приложение, которое будет говорить с последовательным модулем Bluetooth. Приложение примера Bluetooth Chat также предоставляет вам диалоговые окна, которые обрабатывают обнаружение устройств, сопряжение и все эти хорошие вещи, поэтому вам не нужно испортить жесткое кодирование на MAC-адресе вашего устройства, как и вы.
Если у вас возникли проблемы с подключением, вы должны быть конкретными в отношении того, что на самом деле происходит; то есть какие исключения вы получаете и т. д.