@Den160574

Как принимать данные по Bluetooth?

Пытаюсь написать приложение, принимающее данные по Bluetoоth и отображающее их в текстовом окне. То,что написал на основе найденных примеров, не работает. Если имеется работающий пример и не жалко, пришлите, пожалуйста. Заранее благодарю.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Программирвоание - это не про поиск готовых решений, а про понимание того, как работает та или иная технология и какой код надо написать для её использования. Читайте документацию, разбирайте, пробуйте, если будут конкретные вопросы, приходите с ними.
Ответ написан
@402d
начинал с бейсика на УКНЦ в 1988
Жалко. Поэтому словами.
Есть фоновая служба. В ней сиглетон тред сервера.
В сервере
// создаём серверный сокет, он будет прослушивать порт на наличие запросов
serverSocket = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord("RAWBT", SPP_UUID);

// запускаем бесконечный цикл, внутри которого сокет будет слушать соединения и обрабатывать их
// создаем клиентский сокет, метод accept() создаёт экземпляр Socket при новом подключении

Далее в бесконечном цикле, пока верен флаг что работаем

принять соединение, если количество открытых соединений не превысило лимит.
стартует тред взаимодействия

public abstract class Connection extends Thread {
BluetoothSocket socket; // сокет, созданный при подключении пользователя
final OnDocumentReceived mDelegate;
}

В конкретной реализации этого класса потребуются
final ExecutorService executor = Executors.newSingleThreadExecutor();
private DataOutputStream stream;
private DataInputStream dataInputStream;

Экзекутор для рассылки сообщений с прочитанными данными
так как чтение идет из еще одного паралейного треда.

В общем врядли ваши примеры были настолько сложными
Я еще про часть самого окна терминала ничего не написал. А там тоже накрутить кода пришлось
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы