Передача файлов по Bluetooth для Android

#android #bluetooth

#Android #bluetooth

Вопрос:

Я пытаюсь реализовать передачу файлов через Bluetooth и использую пример Bluetooth -чата, который поставляется с Android sdk.

Когда я пытаюсь подключить два телефона Android, они, кажется, всегда говорят, что телефоны сопряжены, но не подключены. Это утомительно, поскольку я пытался подключиться к 3 разным парам телефонов, и все они говорят одно и то же.

Требуется ли для рутирования устройств или что-то в этомроде?? Как я могу подключить два телефона Android через Bluetooth.

Комментарии:

1. Удачи. Bluetooth очень сложен на Android. В прошлом году я внедрил Bluetooth-соединение с KDC200 (Bluetooth-сканер штрих-кода) через SPP. Ему не нравилось работать все время, и было довольно сложно выяснить, действительно ли устройство все еще подключено. Частично проблема заключалась в том, что устройство Android отключало сканер. Затем приложение будет думать, что сканер все еще подключен, и ждать ввода. Какая головная боль!

Ответ №1:

(Это не совсем ответ, но я пока не могу оставлять комментарии.)

Лично у меня был хороший успех с примером кода Bluetooth Chat, и я использовал его для создания приложения, которое взаимодействует с ключом Bluetooth / RS232 для получения большого количества данных измерений с удаленного аппаратного устройства. Однако я признаюсь, что я когда-либо использовал код host Bluetooth только для инициирования подключения к ключу Bluetooth SPP; я не пытался подключиться к коду slave на другом телефоне.

Для справки, два устройства, на которых я успешно использовал свое приложение, — это HTC Desire (2.2) и Archos 101 (2.2). Они не внедрены.

Одна вещь, о которой, я думаю, стоит упомянуть, заключается в том, что в примере Bluetooth-чата, похоже, есть ошибка в коде, когда он принимает массив полученных байтов из сокета и представляет их в ListActivity. Если с удаленного устройства отправляется большое количество символов со скоростью, намного превышающей скорость набора текста, то то, что отображается в ListActivity на телефоне, показывает, что случайный символ поврежден. Это потому, что (я думаю) ArrayAdapter все еще использует байты из этого массива для печати их на экране, когда подключенный поток начинает заполнять тот же массив еще новыми байтами. Итак, мне пришлось исправить это, прежде чем я смог использовать пример кода Bluetooth Chat для надежного получения относительно больших объемов данных с внешнего устройства.

Ни на HTC Desire, ни на Archos 101 у меня, похоже, нет никаких проблем с подключением. Я могу с радостью обеспечить надежное соединение Bluetooth даже при плохом сигнале (например, удаленное устройство находится наверху в доме, пока я внизу с устройством Android), в то время как мое приложение надежно опрашивает данные измерений со скоростью около 250 байт в секунду.

Комментарии:

1. Спасибо @adorablepuppy и @Trev16v. Bluetooth в Android странный, теперь я перешел с «не подключен» на «вкл.-выкл. подключен». Отладка приложения, похоже, тоже не помогает. (Ничего не выдает).

Ответ №2:

Создайте UUID вашего телефона с помощью adb shell, команды просмотра sdptool