Ответ 1
Я думаю, что лучше понять соединение Bluetooth с этим учебником.
http://luugiathuy.com/2011/02/android-java-bluetooth/
http://code.google.com/p/android-bluetooth-touchpad/wiki/FrameworkTutorial:)
Кто-нибудь может дать мне учебные ссылки по Android Bluetooth
или советы? Пожалуйста, не говорите мне ссылаться на пример BluetoothChat, я могу понять только, как обнаружить и подключиться к устройствам, но не знаю, как отправлять и получать данные через Bluetooth.
На самом деле я работаю над проектом Android и встроенного устройства Bluetooth
. Пожалуйста, помогите мне.
Я думаю, что лучше понять соединение Bluetooth с этим учебником.
http://luugiathuy.com/2011/02/android-java-bluetooth/
http://code.google.com/p/android-bluetooth-touchpad/wiki/FrameworkTutorial:)
Я также использовал следующую ссылку, поскольку другие предложили вам для связи с Bluetooth.
http://developer.android.com/guide/topics/connectivity/bluetooth.html
Всё, что вам нужно, это класс BluetoothChatService.java
этот класс имеет следующие потоки:
Теперь, когда вы вызываете функцию запуска BluetoothChatService, например:
mChatService.start();
Он начинает принимать поток, что означает, что он начнет искать соединение.
Теперь, когда вы вызываете
mChatService.connect(<deviceObject>,false/true);
Здесь первый аргумент - это объект устройства, который вы можете получить из списка парных устройств или при сканировании устройств вы получите все устройства в диапазоне, которые вы можете передать этому объекту этой функции, а второй аргумент - логическое, чтобы сделать безопасным или небезопасным соединение.
connect
функция начнет связывать поток, который будет искать любое устройство, на котором выполняется поток принятия.
Когда такое устройство будет найдено, оба принимают поток и соединительный поток вызовут связанную функцию в BluetoothChatService:
connected(mmSocket, mmDevice, mSocketType);
этот метод запускает подключенный поток в обоих устройствах:
Используя этот связанный поток сокета, он получает поток ввода и вывода на другое устройство.
И вызывает функцию read
во входном потоке в цикле while, чтобы он всегда пытался читать с другого устройства, чтобы всякий раз, когда другое устройство посылает сообщение, эта функция чтения возвращает это сообщение.
BluetoothChatService также имеет метод write
, который принимает byte[]
как входной сигнал и вызывает метод записи в подключенном потоке.
mChatService.write("your message".getByte());
метод записи в подключенном потоке просто записывает данные байта в выходы из другого устройства.
public void write(byte[] buffer) {
try {
mmOutStream.write(buffer);
// Share the sent message back to the UI Activity
// mHandler.obtainMessage(
// BluetoothGameSetupActivity.MESSAGE_WRITE, -1, -1,
// buffer).sendToTarget();
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}
Теперь для связи между двумя устройствами просто вызовите функцию записи на mChatService и обработайте сообщение, которое вы получите на другом устройстве.
На странице разработчика Android есть учебники и объясняется, как использовать функцию Bluetooth:
Надеюсь, это поможет.
Существует хороший проект с открытым исходным кодом, чтобы показать вам, как общаться с устройством Android и встроенным Bluetooth-устройством.
Поскольку OP еще не принял ни одного из ответов, я предлагаю несколько примеров приложений для подключения к определенным устройствам. Я не ручаюсь за качество образцов кода, но если вы ищете какой-то "настоящий" код - в смысле приложения, которое подключается к сенсорному устройству, извлекает из него показания и, может, писать устройства, это может помочь:
AndroiDAQ - это плата для создания прототипов приложений для сбора данных. Строитель Рик Флэк предоставил образец приложения для Android с открытым исходным кодом на Github. Найдите файл AndroiDAQService.java. Метод Run() в нижней части показывает как чтение, так и запись из DAQ. (YMMV). Полное приложение доступно для бесплатной загрузки из магазина приложений. Мы часто сталкиваемся с его сбоем, но может случиться так, что наша плата DAQ довольно часто выводит посторонние данные. В нашем приложении, основанном на примере Рика, мы обрабатываем нечетные дополнительные символы и не сбой по этой причине.)
Texas Instruments продает недорогой Bluetooth SensorTag с небольшим количеством встроенных датчиков на борту. Они предоставляют бесплатный SDK для работы с тегом и, IIRC, он включает исходный код для своих приложений для Android и iOs. Будьте осторожны при поиске, кажется, что, поскольку мы купили наш, они выпустили новое устройство с тем же именем, которое использует технологию Bluetooth с низким энергопотреблением, которая отличается от традиционного Bluetooth.