Espruino:Примеры/Gadgetbridge для Android

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Gadgetbridge для Android[1]

GadgetBridge – это Android-приложение с функционалом для наблюдения за показателями здоровья и уведомлениями в стиле умных часов, избавляющее от необходимости использовать проприетарное приложение/сервис.

Если вам нравится пользоваться GadgetBridge, здесь можно внести пожертвование на продолжение его разработки.

В GadgetBridge теперь есть поддержка Bangle.js, что позволяет подключать телефон к Bangle.js или любому другому Espruino-устройству с поддержкой Bluetooth. Сообщения, отправляемые на Bangle.js с телефона

Сообщения обёртываются в текст "\x10" + "GB(...)\n"., и если отправить его в обычную REPL, это выполнит функцию GB() с данными, которые были заданы в её первом аргументе. Сообщения, реализованные на текущий момент:

  • t:"notify", id:int, src,title,subject,body,sender,tel:string – новое уведомление.
  • t:"notify-", id:int – удаление уведомления.
  • t:"alarm", d:[{h,m},...] – установка сигнала оповещения.
  • t:"find", n:bool – поиск устройства.
  • t:"vibrate", n:int – вибрация.
  • t:"weather", temp,hum,txt,wind,loc – сообщение о погоде.
  • t:"musicstate", state:"play/pause",position,shuffle,repeat – проигрывание/пауза музыки и так далее.
  • t:"musicinfo", artist,album,track,dur,c(track count),n(track num) – музыкальный трек, проигрываемый в данный момент.
  • t:"call", cmd:"accept/incoming/outgoing/reject/start/end", name: "name", number: "+491234" – вызов.
  • t:"act", hrm:bool, stp:bool, int:int – включение счётчика шагов в реальном времени и пульсометра в реальном времени. Здесь int – это интервал отправки данных.

Примеры

GB({"t":"notify","id":1575479849,"src":"Hangouts","title":"A Name","body":"message contents"})
GB({"t":"musicstate","state":"play","position":0,"shuffle":1,"repeat":1})
GB({"t":"musicinfo","artist":"..","album":"..","track":"..","dur":241,"c":2,"n":2})
GB({"t":"call","cmd":"accept","name":"name","number":"+491234"})

Сообщения от Bangle.js на телефон

Любая строчка, начинающаяся с {, будет пропарсена GadgetBridge как JSON-данные. Чтобы отправить команду, просто воспользуйтесь Bluetooth.println(JSON.stringify(json)).

Доступные типы сообщений:

  • t:"info", msg:"..." – показать на телефоне информационное всплывающее сообщение
  • t:"warn", msg:"..." – показать на телефоне всплывающее сообщение с предупреждением
  • t:"error", msg:"..." – показать на телефоне всплывающее сообщение об ошибке
  • t:"status", bat:0..100, volt:float(voltage) – обновление статуса
  • t:"findPhone", n:bool
  • t:"music", n:"play/pause/next/previous/volumeup/volumedown"
  • t:"call", n:"ACCEPT/END/INCOMING/OUTGOING/REJECT/START/IGNORE"
  • t:"notify", id:int, n:"DISMISS,DISMISS_ALL/OPEN/MUTE/REPLY",
  • t:"ver", fw1:string, fw2:string – версии прошивки (отправляется в момент подключения)
  • t:"act", hrm:int, stp:int – данные об активности (пульс, шаги с последнего вызова)

Например, вот это...

Bluetooth.println(JSON.stringify({t:"info", msg:"Hello World"}))

...покажет сообщение на экране телефона.

Сборка GadgetBridge

Документацию о GadgetBridge читайте тут.

Установив в систему инструменты для разработки на Android, для сборки вам останется сделать лишь следующее:

./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk

См.также

Внешние ссылки