Discussion Board

Results 1 to 9 of 9
  1. #1
    Registered User Mescalero's Avatar
    Join Date
    Apr 2010
    Posts
    4
    Купил недавно браслет, смысл которого прост: одеваем браслет на руку, цепляем к телефону посредством bluetooth и при получении входящего звонка на телефон либо при удалении телефона от браслета более, чем на Х метров он вибрирует - помогает не пропустить вызов, если вокруг шумно, темно и страшно ) и не потерять телефон.
    Телефон у меня Nokia E65 (Symbian 9.1)

    Хочу написать прогу, которая делает вот что:
    1. задаем промежуток времени, через который браслет должен вибрировать (к примеру раз в час)
    2. сворачиваем прогу
    3. через указаный промежуток времени прога заставляет браслет вибрировать
    Получается что-то вроде вибро-будильника.

    Насколько я понимаю вся задача заключается в том, что надо программно подключиться к устройству и послать какой-то стандартный набор байтов, который гарнитуры и прочие подобные блютус-устройства воспринимают как "есть входящий звонок" (правда до сих пор не могу найти инфу по этому - где взять эти стандарты обмена с гарнитурами).

    Вопроса у меня на эту тему два
    1. На чем быстрее и проще это можно реализовать - на яве (смущает то, что где-то вычитал, что проги на яве не работают в "свернутом" виде), на С++ или на питоне?
    2. Какой способ "воздействия" на браслет проще реализовать программно:
    - послать стандартное сообщение типа "входящий звонок" прямо на гарнитуру
    - сэмулировать входящий звонок, чтобы ОС сама сгенерировала все нужные события и послала нужный сигнал браслету
    - отключить браслет от телефона и через пару секунд снова подключить (при потере связи с телом браслет будет реагировать)

    Опыт программирования для телефонов у меня ограничивается одной простой прогой на Java, так что разбираться мне по большому счету все равно в чем - хочу только найти самый простой способ, чтобы долго с прогой не возиться.
    Буду благодарен за советы и подсказки.

    P.S. Кстати, есть прога FakeCalls - она как раз делает вроде бы то, что нужно: в заданое время имитирует входящий звонок. Но эта прога не подходит, так как "будильник" этот должен работать с периодичностью где-то раз в час - в FakeCalls каждый "звонок" надо создавать вручную, а это явно долго и неудобно в моем случае.

  2. #2
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    А что за браслет ?
    У Вас есть какие-нибудь спецификации, что конкретно ему нужно посылать, чтобы он вибрировал ? Или для этого достаточно разрывать установленное с ним соединение ?

    Java-программы сворачивать на смартфонах S60 можно.
    Писать на Symbian C++ в разы сложнее чем на Java, но и возможностей в разы больше.

  3. #3
    Registered User Mescalero's Avatar
    Join Date
    Apr 2010
    Posts
    4
    Quote Originally Posted by Den123 View Post
    А что за браслет ?
    вот ссылка на аналогичный: http://www.romaxus.ru/productID_6502.html
    Quote Originally Posted by Den123 View Post
    У Вас есть какие-нибудь спецификации, что конкретно ему нужно посылать, чтобы он вибрировал ? Или для этого достаточно разрывать установленное с ним соединение ?
    спецификаций нет никаких, но этот девайс запросто работает "почти со всеми телефонами", как о нем пишут. Я пробовал на своем и на ооооочень древнем самсунге - пашет отлично. Отсюда я делаю вывод, что браслет для телефона выглядит как обычная гарнитура и что этот браслет реагирует на обычные "гарнитурные" сигналы - т.е. достаточно разобраться в работе любой гарнитуры и можно заставить работать этот браслет.
    Реакция на разрыв связи - это просто как вариант, если вдруг окажется, что реализовать эмуляцию звонка или найти ту самую последовательность байт, которая означает "входящий звонок" окажется жутко сложно.
    Quote Originally Posted by Den123 View Post
    Java-программы сворачивать на смартфонах S60 можно.
    При этом программа будет работать в фоне?
    Quote Originally Posted by Den123 View Post
    Писать на Symbian C++ в разы сложнее чем на Java, но и возможностей в разы больше.
    Насчет сложнее я уже понял Но мне подойдет и Java - насколько я понял, возможности для работы с bluetooth есть и там.

  4. #4
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Действительно, браслет фактически прикидывается гарнитурой. Протокол взаимодействия, соответственно, должен быть стандартным. Самым правильным решением было бы реализовать этот протокол в своей программе. Насчет FakeCall мысль интересная, вам нужно попробовать, будет ли гарнитура (ну или браслет) реагировать на фэйковые звонки. Вполне допускаю, что эмулировать звонки по расписанию будет проще, чем возиться с bluetooth ... однако не уверен, что java с такой задачей справится.

    По поводу java - мидлет можно "свернуть", при этом он продолжит работать и будет виден в списке запущенных приложений. На Symbian C++ можно сделать еще лучше - отдельный фоновый процесс.

  5. #5
    Registered User Mescalero's Avatar
    Join Date
    Apr 2010
    Posts
    4
    Quote Originally Posted by Den123 View Post
    Протокол взаимодействия, соответственно, должен быть стандартным. Самым правильным решением было бы реализовать этот протокол в своей программе.
    Где бы еще найти описание этого протокола... Как я понимаю, мало у кого возникает необходимость устроить программное общение с гарнитурой, видимо поэтому сложновато что-то найти по этой теме.

  6. #6
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Это, действительно, не самый простой вопрос. Надо искать.

  7. #7
    Registered User Mescalero's Avatar
    Join Date
    Apr 2010
    Posts
    4
    Покопался малость, кажется нашел, что за протокол мне нужен. Скорее всего это HFP, так как только он позволяет принять/отклонить звонок с гарнитуры, а некоторые из моделей тех самых браслетов как раз позволяют отклонить вызов нажатием кнопки на браслете - получается, что используют они именно этот протокол... Остается найти нормальное описание этого протокола.
    Хотя, подозреваю, гораздо проще будет сделать это на Java. Думаю реализовать такой вариант:
    1. Если пришло время Ч - отключить браслет от телефона (или тупо выключить bluetooth на телефоне, но это как-то совсем уж коряво).
    2. через пару-тройку секунд снова подключить.
    3. Ждать следующего время Ч.
    В итоге браслет сначала "потеряет" телефон, повибрирует, потом снова найдет - как раз то, что надо.

    Интересно, подключение/отключение bluetooth-устройства без участия пользователя можно реализовать на j2me? Чет я уже совсем запутался в тоннах статей, описаний и непонятных примерах

    P.S. Кстати, а почему нокиевский сайт такой замороченый? Пытаюсь зайти на форум, вместо этого попадаю на страницу с кучей ссылок, текста - и даже близко никакого форума... как то странновато выглядит по-моему

  8. #8
    Nokia Developer Expert Trufanov's Avatar
    Join Date
    Mar 2010
    Location
    Moscow
    Posts
    34
    Протокол общения смартфона с headset'ом стандартный. Вот он. Они кидаются AT-коммандами. Чтобы headset звонил ему нужно посылать AT+RING.

    To notify the Headset application that there is a call waiting, and to ask the
    headset application to alert the user with a ring tone, the Audio Gateway application
    sends an AT+RING command over the RFCOMM link. If the headset user presses a button to accept the call, the Headset sends this button press in a keypad
    command:AT+KPD.
    Источник.

    Проблемы следующие:
    1. J2ME не умеет послать AT комманды
    2. Symbian приложению для этого потребуется NetworkControl capability (на сколько помню)
    3. Общается с headset'ом системная программа. Не уверен что в их соединение можно вклиниться. А если headset будет принимать только комманды будильника, то перестанит звонить на входящие. Т.е. в худшем случае во время работы будильника браслет на звонки вибрировать перестанет.

  9. #9
    Registered User R.Ll.S.h57's Avatar
    Join Date
    Feb 2010
    Posts
    27
    Я думаю Python идеально подходит. В нем имеется поддержка RFCOMM, так что можно отсылать AT-команды. Так же программу на PyS60 можно сделать невидимой из диспетчера задач. Кроме того Python прост в изучении. Только понадобиться интерпретатор.
    Я даже примерно представляю как написать эту программу.
    Last edited by R.Ll.S.h57; 2010-05-09 at 13:21. Reason: Еще кое что дописал

Similar Threads

  1. detecting if bluetooth is enabled (Series 40)
    By dspoeri in forum Mobile Java General
    Replies: 2
    Last Post: 2009-05-01, 13:08
  2. Successfully Connected Using Bluetooth with Pc Suite
    By zrilo in forum Bluetooth Technology
    Replies: 0
    Last Post: 2006-04-09, 04:21
  3. PC Suite not detect 6600 with Bluetooth connection
    By spinacle in forum Bluetooth Technology
    Replies: 29
    Last Post: 2004-03-14, 23:24
  4. Nokia 6210 Bluetooth Connectivity Pack
    By peter-h-hansen in forum Bluetooth Technology
    Replies: 1
    Last Post: 2002-08-19, 12:52

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved