![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| CompleteFailure |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 5.11.2006 Репутация: 2 Всего: 2 |
Всем привет.
Я пытаюсь установить соединение между мидлетом и bluetooth гарнитурой. Для этого я создаю сервер c UUID 0x111f (voice gateway) и ломлюсь на сервер с UUID 0x1108 (headset) на гарнитуре. Насколько я понимаю, соединение создается следующим образом: мидлет соединяется с сервисом UUID 0x1108 на гарнитуре через rfcomm. По этому каналу идут AT-команды от гарнитуры и к гарнитуре из мидлета. После того, как создано первое соединение, гарнитура начинает ломиться на voice gateway UUID 0x111f телефона тоже по rfcomm и через это соединение уже идет голос в двух направлениях. Я могу ошибаться поэтому прошу меня поправить. В моем случае при регистрации нового voice gateway гарнитура продолжает ломиться на старый. Даже в проводнике, когда смотришь доступные сервисы на телефоне, меняется имя старого voice gateway на имя моего только что созданного (было Motorola Voice Gateway, стало MyVoiceGateway), т.е. казалось бы мидлету удалось переписать в описании сервисов (service data base по моему) на телефоне адрес voice gateway на эмулируемый и мидлет должен получить контроль над voice gateway на телефоне вообще. Но когда создаешь соединение с гарнитурой, открываешь там input и output stream, гарнитура не подключается к voice gateway созданный мидлетом ( Connection conn = notifier.acceptAndOpen равно null). 1. В чем может быть проблема? Может быть мидлет не может по определению заменить существующие изначально сервисы на телефоне, как voice gateway в моем случае? т.е только регистрация новых 2 Через что передаются AT команды и голос к гарнитуре и обратно? 3. Как вы считаете вообще возможно записать звуковой поток с гарнитуры, хотя бы в виде массива байт, не проигывая его на телефоне? 4. И еще вопрос. В каком виде (интежер, стринг) передаются AT команды. Насколько я понимаю они должны передаваться в виде стринга на сервис с UUID 0x1108 (headset), например "AT+CKPD=200". Это сообщение отредактировал(а) CompleteFailure - 5.11.2006, 22:20 |
|||
|
||||
| CompleteFailure |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 5.11.2006 Репутация: 2 Всего: 2 |
Может быть кому-то захочется написать что-то подобное, поэтому публикую здесь ответ моторолы на тот же самый вопрос.
Hi Alexander, MIDlet server can register service with existing service UUID (0x111f), but in this case client application should be able to distinguish these services. I have captured MIDlet client logs and found that there are 2 registered service records corresponding to UUID 0x111f even if only one was registered by MIDlet server: btspp://001237886CD8:7;authenticate=false;encrypt=false;master=false btspp://001237886CD8:16;authenticate=false;encrypt=false;master=false They correspond to: server channel 7 – Handsfree Voice Gateway (native existing service) server channel 16 – JSR 82 Dynamic Service (service registered by MIDlet) JSR 82 provides interfaces to connect over L2CAP, RFCOMM and OBEX protocols. These interfaces can be used to connect to any BT device and transmit any data, so I think that use case when MIDlet gets audio stream as byte array is possible, but client application should be able to distinguish services that it connects to. Best regards Samuel |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |