Я пишу приложение, которое может связаться с моим ПК. Я использовал технические возможности Bluetooth SDK 2.1.
Я могу найти устройства, получить их MAC-адрес, создать сокет RFCOMM, но когда я запускаю соединение, я получаю следующее сообщение об ошибке.
Сервисное исследование перестало работать.
Если я пишу такое приложение, действительно ли мой Nexus One является клиентом или сервером?
OK, у меня та же проблема, но я думаю, что могу ответить на несколько ваших вопросов. Если ваш ПК открыл SPP порт, например, с помощью команды "sdptool add --channel=3 SP", то ваш телефон Android будет клиентом, открывающим сокет и соединяющимся с помощью этого сокета с сервером (вашим ПК или любым другим Bluetooth устройством, например, GPS, мышью и т.д.).
Вы можете получить эту информацию, прочитав статью Bluetooth, определение клиента я взял из этой статьи.
Если вы открываете SPP порт на сервере (вашем ПК и т.д.), вы предлагаете стандартную услугу, и для этой услуги назначен специальный UUID. Это может быть: 00001101-0000-1000-8000-00805F9B34FB
, если я не ошибаюсь.
Поэтому я думаю, что мы должны получить квалифицированный ответ от разработчика Android. Или задайте этот вопрос в четверг в рабочее время IRC.
Хотя это может быть ваш UUID, я бы также предложил вам убедиться, что Bluetooth MAC является точным и в верхнем регистре.
Я бы также предложил запустить hcidump -X
в терминале на компьютере Linux, и посмотреть, можете ли вы увидеть любой двусторонний трафик между машиной Linux и телефоном в течение всего процесса.