[Приложение] мой MjDM (Android)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

[Приложение] мой MjDM (Android)

Сообщение hc2hunter » Вт окт 08, 2019 8:11 pm

myMjDM_100px.png
myMjDM_100px.png (11.18 КБ) 18984 просмотра

Несколько не устраивало меня официальное приложение...
Поэтому набросал свое. Назвал "мой MjDM".
По сути оно из себя представляет все тот же системный браузер, завернутый в интерфейс приложения. Тут ничего нового.

Screenshot_20200930-133727.png
Screenshot_20200930-133727.png (50.53 КБ) 11268 просмотров
Еще картинкиПоказать
mjdm01.jpg
mjdm01.jpg (9.7 КБ) 11257 просмотров
mjdm02.jpg
mjdm02.jpg (11.35 КБ) 11257 просмотров
mjdm03.jpg
mjdm03.jpg (11.23 КБ) 11257 просмотров
mjdm04.jpg
mjdm04.jpg (15.07 КБ) 11257 просмотров
mjdm05.jpg
mjdm05.jpg (14.15 КБ) 11257 просмотров
mjdm06.jpg
mjdm06.jpg (15.12 КБ) 11256 просмотров
Базовый функционал (а также, что делал именно для себя и чего мне не хватало):
  • Поддержка нескольких серверов MDM с независимыми настройками.
    Причем это могут быть любые удобные вам закладки на любые страницы в интернете.
  • С версии 1.0.2 реализована возможность автоматического переключения между серверами при нахождении устройства в зонах действия нужных WiFi-сетей. Так, например, в зоне домашней сети можно указать локальный адрес сервера, что сэкономит трафик и позволит полноценно пользоваться домашними сервисами.
  • Очень не хватало кнопки "обновить".
    Т.к. из сцен часто приходится заходить на сами управляемые модули (типа ESP8266), где без обновления страниц очень неудобно.
    Также, интерфейс умного дома у меня состоит из нескольких сцен (страниц), некоторые из которых было бы неплохо иногда обновлять без необходимости бродить по ссылкам и делать лишние клики.
    В приложении это делается привычным свайпом вниз (как в браузере Chrom). Для каждого сервера настраивается отдельно, т.к. существуют люди, кто не любит свайп вниз, он им неудобен.
  • При свертывании оригинального приложения и повторном его открытии - оно сразу спрыгивает на Домашнюю страницу. Мне это не удобно.
    Конечно, если даже моё приложение свернуто очень-очень давно, то Андроид может сам решить, что страницу пора перерисовать, но во всяком случае не скидывается постоянно на Домашнюю.
    Чтобы это происходило ещё реже, лучше закрепить приложение в памяти и запретить "выталкивать" его при переполнении памяти.
  • Также в оригинальном приложении были непонятки с режимом полного экрана. Можно было добиться, что приложение развернется на весь экран, а меню уже не вызвать никак... и единственный вариант оставался - свернуть его и "срубить".
    В новых релизах они придумали "плавающую кнопку +" (так называемый FOB button в Андроид). Идея неплоха, но не люблю когда что-то загораживает сцену, приходится отодвигать постоянно что-либо, чтобы нажать какой-то объект.
    Решил пока данную проблему боковым выдвижным меню.
  • Доработал режим масштабирования страниц, также добавил режим просмотра как в браузере ПК.
  • Поддержка https.
    Правда, пока не проверено как работает basic-авторизация через SSL, возможно, тут еще придется дописать...
  • Поддержка продвинутых виджетов, умеющих выполнять действия (см. документацию ниже)
  • Поддержка в ссылках на страницах метатегов (схем) tel: sms: smsto: mms: mmsto: mailto:
    Например, если на странице есть ссылка <a href="tel:+79051111111">Позвонить</a>, то при попытке перехода по такой ссылке вам будет предложен выбор приложения, с помощью которого можно выполнить это действие. Если приложение, обслуживающее указанную функцию, на телефоне в единственном варианте - оно сразу будет вызвано, а ему будут переданы параметры ссылки.
  • Поддержка своей схемы mymjdm:// с целью реализации обмена ссылками и командами управления.
    Пока готова реализация команд openurl и download (справка).
  • поддержка MajorDroidAPI (работа устройства в качестве терминала сервера MDM).
    Готова расширенная реализация (справка).
  • Голосовое управление (и альтернативное решение)
В ближайших планах:
  • MQTT клиент

FAQ (часто задаваемые вопросы)Показать
FAQ (часто задаваемые вопросы)

Q: Я хочу реализовать в приложении такую фичу! Сделаете?
A: Пишите, обсудим. Но я изначально писал для себя и не обещаю реализовывать все хотелки пользователей.

Q: Приложение не запустилось на моем стареньком Android 2.3 (4.0 и т.п...). Можете его допилить для более старых платформ?
A: К сожалению, если пытаться поддерживать платформы ниже 4.4 (Android API 19), это очень трудоёмко в части ручной реализации средств, которых в ранних версиях Android просто не было. Также, само приложение разрастается до огроменных размеров и становится крайне неповоротливым (тормозным).
Пока решено остановиться на версии не хуже 4.4, а это, кстати сказать, почти 80% всех Android-устройств в мире.

Q: Есть вопрос по работе виджетов
A: Работа виджетов подробно рассмотрена в следующем сообщении. Там же краткий FAQ именно по виджетам.

Q: Как в Android 13 добраться до бэкапов программы? А то при попытке зайти любым файловым менеджеров в папку Android/data - доступ запрещен!
A: Да, действительно, зарезали окончательно в Android 13 доступ к этой папке, но многие из файл-менеджеров на данный момент, уже дают спокойно открывать /data и видеть/копировать файлы. Ниже список этих fm:
XFolder, ZArchiver 1.0.6, Files (Marc Apps & Software), Cx проводник, Total Commander, FV File Manager (реализация доступа менее удобна, чем на других).

Q: Как скоро приложение станет платным?
A: Учитывая опыт монетизации MajorDroid, могу лишь сказать, что если это когда-то и случиться с myMjdm, то она пойдет каким-то иным, более демократичным путем. Конкретизировать что-либо слишком рано.
Пока развитие стимулируют только добровольные пожертвования.
Если Вам посильно поддержать проект любой суммой, - то VISA 44O5 О366 2259 39 семь пять
Документация и FAQ по использованию виджетовПоказать
Документация по виджетам во втором сообщении темы
https://mjdm.ru/forum/viewtopic.php?f=5 ... 87#p108818
Поддержи разработку!Показать
В настоящий момент все функции приложения доступны бесплатно.
Если вы считаете, что приложение заслуживает вашей поддержки, буду признателен за добровольное пожертвование
VISA 44O5 О366 2259 39 семь пять



Платформа - Android 4.4 и выше.

__________________________________

История версий и ссылки на скачивание

Официальная страничка на GooglePlay
(по поводу инцидента с Google 07.11.2019)

Политика конфиденциальности
v1.5.6 (buld 39, code version 42)Показать
v1.5.6 (buld 13, code version 41)Показать
v1.5.6 (buld 9, code version 40)Показать
v1.5.5 (buld 23, code version 39)Показать
история устаревших версий...Показать
v1.5.4 (buld 97, code version 38)Показать
v1.5.3 (buld 69, code version 37)Показать
v1.5.1 (buld 19, code version 36)Показать
v1.5.0 (buld 17, code version 35)Показать
v1.5.0 (buld 13, code version 34)Показать

v1.4.6 (buld 71, code version 33)Показать
v1.4.5 (buld 39, code version 32)Показать
v1.4.0 (buld 196, code version 29)Показать
v1.3.2 (buld 39, code version 28)Показать
Изменения:
  • исправление недочетов голосового распознавания
    (пока в рамках существующей, и не самой удачной реализации...)
  • добавлена возможность фиксирования портретной или альбомной ориентации дисплея
Скачать
v1.3.0 (buld 69, code version 27)Показать
Изменения:
  • очень большое обновление
    все подробности по ссылке
Скачать
v1.0.2 (buld 99, code version 26)Показать
Изменения:
  • срочный багфикс
Скачать
v1.0.2 (buld 97, code version 25)Показать
Изменения:
  • в настройках серверов добавлена возможность отслеживать точки доступа WiFi, что позволяет производить автоматическое переключение между серверами при попадании устройства в зону покрытия нужной WiFi-сети.
    Также, серверу можно задать альтернативный адрес в рамках этой опции, что дает возможность, например, при попадании в зону WiFi домашней сети переходить на сервер по локальному адресу
Скачать
v1.0.1 (buld 69, code version 24)Показать
Изменения:
  • улучшения в логике работы функций бэкапа и восстановления настроек
Скачать
v1.0.1 (buld 53, code version 23)Показать
Изменения:
  • исправлена проблема с падением приложения при попытке включить скрытие верхней панели (тулбара) на семействе устройств от Huawei
  • исправлена невозможность сохранить настройки приложения на некотoрыx модификациях устройств Samsung под управлением Android Q
  • прочие исправления, улучшения...
Скачать
v1.0.1 (buld 20, code version 22)Показать
Изменения:
  • добавлена возможность бэкапить и восстанавливать настройки виджетов
    (если к виджетам привязаны действия, то при переносе на другое устройство не забудьте потом проверить #ID виджетов в их настройках, т.к. системные идентификаторы могут у них измениться)
  • прочие исправления и улучшения...
Скачать
v1.0.0 (buld 2020, code version 21)Показать
Изменения:
  • добавлена возможность создавать сервера (закладки) через копирование уже имеющихся, что значительно экономит время при создании похожих записей
  • добавлена возможность выноса на боковые панели пользовательской кнопки, позволяющей запускать любое установленное в системе приложение не выходя из программы. так, например, можно повесить туда ассистент голосового движка или любую задачу Tasker, скомпилированную как отдельное приложение. кнопка допускает замену стандартной иконки на одну из преложенных в стиль самого приложения
  • появилась возможность создавать и восстанавливать резервную копию настроек программы и серверов. файл с настройками сохраняется в корне встроенной памяти c именем myMjDM_settings.txt и имеет обычный текстовый формат обмена данными json.
    при восстановлении настроек программа ищет этот же файл по тому же пути.
  • множество прочих исправлений и улучшений...
Скачать
v0.9.9 (buld 543, code version 20)Показать
Изменения:
  • левое меню приведено в соответствие с правым
Скачать
v0.9.9 (buld 539, code version 19)Показать
Изменения:
  • добавлена возможность задействовать правое боковое меню.
    вызывается свайпом от правого края экрана или нажатием кнопки в верхней панели.
    когда это меню отключено - функционал навигации между серверами переносится в основное меню
  • чувствительность выдвижения левого и правого меню разделены в Настройках
  • устранена ошибка работы иммерсивного полноэкранного режима
  • устранены замеченные ошибки в работе с хранилищем при удалении серверов из списка
  • прочие исправления, улучшения...
Скачать
v0.9.9 (buld 379, code version 18)Показать
Изменения:
  • добавлена поддержка в http-ссылках тегов tel:, sms:, smsto:, mms:, mmsto:, mailto:
    Например, если на странице есть ссылка <a href="tel:+79051111111">Позвонить</a>, то при попытке перехода по такой ссылке вам будет предложен выбор приложения, с помощью которого можно выполнить это действие. Если приложение, обслуживающее указанную функцию, на телефоне в единственном варианте - оно сразу будет вызвано, а ему будут переданы параметры ссылки.
    Также, форумчанин, предложивший реализовать данную функцию, очень просил упомянуть, что...
    ...в качестве звонилки надо обратить внимание на ExDialer. Во первых, на нее куча тем, можно подобрать под любую сцену, а во-вторых, и это главное, - она корректно переворачивает звонилку, напомню, как правило, они отображаются только в книжном варианте. А планшеты для сцен, как правило, используются в альбомном виде.
Скачать
v0.9.9 (buld 369, code version 17)Показать
Изменения:
  • добавлена поддержка любого количества серверов MDM
    ИллюстрацияПоказать
Скачать
v0.9.8 (buld 489, code version 16)Показать
Изменения:
  • добавлена настройка - отображать или нет всплывающее сообщение после успешного выполнения действия виджетом
  • прочие незначительные правки...
Скачать
v0.9.8 (buld 479, code version 15)Показать
Изменения:
  • добавлен виброотклик при нажатии элементов управления виджетом (настраивается индивидуально для каждого виджета)
  • расширена область нажатия на элементы управления виджетом
  • прочие мелкие правки...
Скачать
v0.9.8 (buld 469, code version 14)Показать
Изменения:
  • добавлена возможность обновлять web-виджет если скрыта кнопка обновления
  • добавлена возможность скрывать-показывать время обновления web-виджета по клику на этой области
  • добавлена настройка сохранения геометрии сцены в web-виджете (вписывание страницы в виджет)
  • прочие мелкие правки...
Скачать
v0.9.8 (buld 436, code version 13)Показать
Изменения:
  • использование "свайпа" для обновления страниц вынесено в Настройки
  • исправлено конкурентное использование оверлея с другими приложениями в работе web-виджетов
Скачать
v0.9.8 (buld 399, code version 12)Показать
Изменения:
  • Исправлены неточности в формулировках настроек виджетов
  • Если виджету назначена функция "Открыть мой MjDM", он перезапускал приложение, а не поднимал из свернутого состояния. Исправлено
  • Новая функция - по выполнении действия обновить указанный виджет, что дает возможность визуально отобразить результат выполнения действия.
    К примеру, если где-то включился свет - сразу можно перерисовать виджет, который отображает соответствующую картинку.
    Подробности работы функции будут сегодня добавлены в FAQ по виджетам
  • Прочие исправления в работе виджетов...
Скачать
v0.9.8 (buld 379, code version 10)Показать
Изменения:
  • улучшения в работе виджетов
  • добавлены настройки издавать звук и вибрацию при нажатии на виджет (выполнении действия)
Скачать
v0.9.8 (buld 369, code version 9)Показать
Изменения:
  • поддержка виджетов.
    документация по виджетам в следующем сообщении темы
Скачать
v0.9.7 (buld 98, code version 8)Показать
Изменения:
  • исправлена работа приложения под Android 5.0/5.1
Скачать
v0.9.6 (buld 94, code version 5)Показать
Изменения:
  • улучшена отзывчивость при перемещении по пунктам меню
  • устранена излишняя повторная загрузка страниц в некоторых ситуациях
  • устранение прочих незначительных недочетов
Скачать
v0.9.6 (buld 91, code version 5)Показать
Изменения:
  • переработана настройка чувствительности выдвижения боковой панели
  • добавлена кнопка "Обновить"
  • прочие мелкие правки интерфейса...
Скачать
v0.9.6 (buld 69, code version 5)Показать
Изменения:
  • в разделе "О программе" добавлена кнопка перехода на страницу приложения на GooglePlay
  • исправлены некоторые формулировки в Настройках
Скачать
v0.9.6 (buld 50, code version 5)Показать
Изменения:
  • с данной версии приложение обитает на GooglePlay
  • исправлена работа html5
  • реализовано автообновление приложения с моего сервера (теперь, правда, еще будет работать и автообновление с GooglePlay)
  • переработаны настройки
  • добавлена возможность вынести в меню кнопку "Выход" (чтобы можно было полностью выгрузить приложение из памяти)
Скачать
v0.9.4 (buld 70, code version 2)Показать
Изменения:
  • исправлено поведение приложения при отключенном автоповороте экрана
Скачать

__________________________________

p.s. не знаю, на сколько тут любят "альтернативщиков"...
ну... если выгонят, пойдем жить на 4pda )
Последний раз редактировалось hc2hunter Чт ноя 23, 2023 11:23 am, всего редактировалось 160 раз.
За это сообщение автора hc2hunter поблагодарили (всего 36):
Sergey.Chek (Вт окт 08, 2019 10:00 pm) • xor (Ср окт 09, 2019 12:26 am) • mihas (Ср окт 09, 2019 11:56 am) • skill (Ср окт 09, 2019 12:37 pm) • Step40 (Ср окт 09, 2019 12:44 pm) • Divan (Ср окт 09, 2019 2:20 pm) • directman66 (Ср окт 09, 2019 2:27 pm) • Denis_k (Ср окт 09, 2019 3:46 pm) • Ramil (Чт окт 10, 2019 6:23 am) • Bolik.Stav (Чт окт 10, 2019 1:28 pm) и ещё 26
Рейтинг: 41.86%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср окт 09, 2019 8:38 am

Краткое руководство по использованию виджетов в myMjDM

Виджет представляет собой либо "скриншот" web-страницы, либо кнопку. И на то и на другое можно повесить действие по клику.
Сразу после создания виджета вам будет предложено выбрать его тип.
Сменить тип виджета можно будет в дальнейшем в любой момент, настройки предыдущего типа также не будут потеряны.
Рассмотрим подробнее...

1.
Виджеты типа "WEB страница"Показать
Screenshot_20191125-143229.png
Screenshot_20191125-143229.png (91.37 КБ) 18118 просмотров
Вам будет предложено ввести url, который виджет будет загружать скрытно в память и делать с него скриншот, который потом появится в окне самого виджета в виде обычной картинки (bitmap).
Скорость отображения картинки напрямую зависит от сложности и объема загружаемой страницы, а также скорости подключения устройства к серверу, с которого грузится страница.
Тут сразу следует заметить, что функционал никак не ограничивается загрузкой сцен с Вашего сервера MajorDomo. Вы можете грузить в виджет что угодно - сайты с погодой, новостями, страницы с форумов и т.п... лишь бы WEB-объект не поперхнулся запрошенным объемом.

Также предусмотрен параметр задания периода обновления страницы - в секундах. Если вы загружаете довольно объемные страницы, - не следует злоупотреблять данным параметром. В конечном итоге это как минимум выразится в более быстром исчерпании заряда аккумулятора или истраченном интернет-трафике. По умолчанию предлагается обновлять раз в 300 секунд (5 минут).

Для примера, Ваша сценка для периодического обновления может выглядеть как-то так:
Пример web-виджетаПоказать
screenshot-2019-11-25-144903.png
screenshot-2019-11-25-144903.png (247.94 КБ) 18115 просмотров
С помощью кнопочки справа сверху можно принудительно обновить содержимое виджета.
Если данная кнопка скрыта в Настройках, все-равно можно нажимать на правый верхний уголок виджета для обновления содержимого.

Время обновления показывается слева сверху. По клику на этой области можно скрывать/отображать данный параметр.

Обратите внимание, что то, как виджет отображает вашу страничку напрямую зависит от того, как вы её сверстали.
Чтобы в большинстве случаев отображение проходило удачно, виджет при рендеринге использует масштабирование указанное в самом html-коде и использует фактор скалирования = 1.
Так, например, вот такое отображение вовсе не является глюком или ошибкой:
пример неправильного скалированияПоказать
screenshot-web-scale.png
screenshot-web-scale.png (83.12 КБ) 18113 просмотров
Просто, страница у вас при 100% отображении браузером занимает меньшую площадь, чем может вместить web-объект, и он, как и в настольном браузере заполняет оставшееся поле белым цветом.
Вы легко можете исправить ситуацию, если в настройке сцены поставите галку "Автоматически изменять размер сцены по ширине экрана".
Автоматически изменять размер сцены по ширине экранаПоказать
screenshot-mjdm-admin.png
screenshot-mjdm-admin.png (162.71 КБ) 18113 просмотров
Правда, бывают случаи, когда эту галку, наоборот, целесообразно снять. Для тех, кто не любит писать html-код сам и не разбирается в css – просто экспериментируйте. В любом случае имеет смысл создавать изначально большие сцены с разрешением не хуже 1280х800. Это избавит вас от проблем на подавляющем большинстве устройств.

Безусловно, случаются и неразрешимые ситуации, когда виджет ну никак не желает вмещать в себя страницу. Зачастую это связано и с тем, как само устройство отображает и масштабирует виджеты на рабочем столе (видение данного вопроса изготовителем устройства). Но вы всегда можете подредактировать заголовок своей страницы таким образом, чтобы Ваша страница именно у Вас отображалась как вам нужно. Ну... или изобрести что-то своё, подходящее под ваше оформление, чтобы вид страницы сочетался с прочими элементами.
Если чего-то будет не хватать, в будущем рассмотрим возможность добавить каких-нибудь полезных настроек, которые помогут лучше разместить страницы в плоскости виджета в различных ситуациях.

С code version 14 в Настройках виджета появилась опция:
Вписывать страницу в виджетПоказать
----1.png
----1.png (18.49 КБ) 17717 просмотров
Думаю, из примера ниже все становится понятно. Теперь можно сохранять геометрию исходной страницы, а не растягивать ее на плоскость виджета. Удобно, красиво. Но следует учесть, что если площадь картинки маленькая, элементы управления могут "повиснуть" в воздухе.
Примеры вписывания картинки в виджеты разных размеровПоказать
---------.png
---------.png (450.23 КБ) 17719 просмотров

(!) Важные замечания по поводу безопасности
в Android, начиная с поколения 6.1 "Marshmallow" ввели необходимость дополнительного запроса разрешений у пользователя.
Текущая реализация WEB-виджетов требует разрешения "Разрешить отображать поверх" ("Allow display over other apps"). При размещении виджета данного типа у вас будет запрошено это разрешение.
Если вдруг в процессе работы на устройстве по каким-то причинам для вас это окажется неприемлемым - вы всегда можете запретить данную функцию в Настройках приложения. Уже созданные виджеты отобразят предупреждение на эту тему.
Ну и также, в строке уведомлений вполне вероятно вам будет показываться значок, что служба myMjDM работает в фоновом режиме:
Значок службыПоказать
Screenshot_20191125-143410---.png
Screenshot_20191125-143410---.png (70.98 КБ) 18110 просмотров
Если он надоест, скрыть его можно штатными средствами Андроид.
Пользователей Android 4.4 и 5.0 данное замечание в принципе не касается, там указанные права разрешены автоматически.


2.
Виджеты типа "Кнопка с действием"Показать
Screenshot_20191125-143349.png
Screenshot_20191125-143349.png (102.33 КБ) 18095 просмотров
В этом случае вместо скриншота страницы будет размещена обычная кнопка с однородным фоном и надписью, которую вы задаете самостоятельно.
В тексте надписи поддерживается мультистрока (переносы кодом \n).
Также можно поиграться цветом шрифта, фоном и прозрачностью.

Виджеты данного типа не требуют никаких дополнительных системных разрешений в отличие от web-виджетов

-----

Что касается выполнения действий по нажатию на виджет - тут все просто.
В настоящий момент виджет умеет -
- либо открывать программу myMjDM
- либо выполнять указанную ссылку (скрытно)
- либо ничего не делать вообще (если поле ссылки пустое)

В простейшем случае вы можете задать обработку какого-то действия через сервер MajorDomo.
Ну, например, выполнение метода switch для какого-либо объекта:
http://majordomo_адрес/objects?object=ИМЯОБЪЕКТА&op=m&m=switch

Включить свет, открыть ворота, выполнить какой-то сценарий, и т.п... - все это сюда отлично подходит.
О результате выполнения действия вы будете оповещены стандартным системным всплывающим сообщением (настраивается). Можно также в качестве отклика нажатия добавить воспроизведение звука или вибрацию.
Разумеется, тут тоже можно писать любые ссылки. Хоть http://google.ru . Просто, созерцать результат выполнения подобного "действия" будет весьма скучно... :) - виджет скрытно откроет google и потом уничтожит объект в памяти; по его мнению, все прошло великолепно и действие выполнено.
Таким, образом, например какая-то часть вашего рабочего стола с…Показать
Таким, образом, например какая-то часть вашего рабочего стола с нужными вам виджетами может выглядеть как-то так...
Screenshot_20191125-143410.png
Screenshot_20191125-143410.png (516.83 КБ) 18106 просмотров

C версии приложения 0.9.8 build 399 в этот контекст добавлена новая полезная функция - возможность обновить любой указанный виджет по окончании выполнения действия.
Тут нам очень пригодится системный идентификатор виджета (его уникальный номер в системе). При настройке виджета (справа вверху) и в системных сообщениях от виджетов вы как раз его и видите - некий номер #NN (с решеточкой впереди).
Это и есть системный номер данного виджета на вашем устройстве. В ряде случаев с помощью него удобно отслеживать, какой виджет откликнулся на действие, а также указывать номер нужного виджета в поле данной функции.

Пример
Я сделал себе виджет, по нажатию на который будет включаться свет под навесом.
Подъезжая вечером к воротам, мне удобно нажать на телефоне кнопку, чтобы зажегся свет и удобно было заехать без лишних манипуляций.
Да, безусловно, вы возразите, что можно включать свет кучей других способов. Например, отслеживая свое местоположение по GPS-трекеру, или распознавая образ и номер машины по видеокамере.
Все так, но в данном случае разберем как сделать интерактивную кнопку прямо на рабочем столе карманного гаджета.
  1. Создал сценку с подложкой (контейнером) 684 х 415. У меня это самый подходящий размер окна браузера, чтобы не появлялся белый фон по краям.
  2. Разместил внутри этого объекта нужные мне html-блоки. А именно 4 переключателя в виде лампочек и картинку самого навеса (для симпатичности)
    Сцена в админкеПоказать
    scene14.png
    scene14.png (24.42 КБ) 17912 просмотров
    Получилось такПоказать
    Screenshot_20191129-152924.png
    Screenshot_20191129-152924.png (411.99 КБ) 17928 просмотров
  3. Настроил виджет как WEB-виджет. Обозначил действие, которое по ссылке "кликает" основное свойство объекта, которое уже включает весь свет под навесом. И там же обозначил, что по выполнении действия мне надо обновлять этот же самый виджет (в моем случае #84)
    Настройки виджетаПоказать
    Screenshot_20191129-153006.png
    Screenshot_20191129-153006.png (114.59 КБ) 17927 просмотров
  4. Теперь при клике происходит вкл/выкл всего света под навесом :)
    КартинкаПоказать
    Screenshot_20191129-153020.png
    Screenshot_20191129-153020.png (267.89 КБ) 17926 просмотров
    Время автообновления виджета оставил по-умолчанию (300 секунд), чтобы в виджете иногда отображалось актуальное состояние освещения, на случай, если кто-то зажжет свет выключателем или с другого терминала...
-----
FAQ по виджетамПоказать
FAQ по виджетам

Q: После перезагрузки устройства часть виджетов некоторое время белые, а часть вроде сразу нормальные... Отчего так?
A: Давайте разберемся
Вы имеете ввиду вот такую картинуПоказать
---Screenshot_20191206-172333.jpg
---Screenshot_20191206-172333.jpg (81.09 КБ) 17578 просмотров
Или такуюПоказать
---Screenshot_20191206-172340.jpg
---Screenshot_20191206-172340.jpg (128.18 КБ) 17578 просмотров
Связано это с тем, что после перезагрузки процессор аппарата очень сильно загружен (догружаются прочие программы, запускаются процессы и т.п.). И в этот момент система дает команду на обновление размещенных на столе виджетов. Виджет пытается открыть страницу в памяти устройства, но процессорного времени ему не хватает, поскольку система не дает ему приоритет, и страница не успевает догрузиться... Но отобразить-то хоть что-то нужно? И в итоге он отображает "белый экран" браузера. Зачастую можно даже получить искаженный вид страницы (недогруз некоторых элементов или сбитую разметку).
В данном случае или можно подождать следующего цикла обновления, скорее всего аппарат уже "успокоится" и будет более отзывчиво обрабатывать запросы системы, либо просто обновить виджет в-ручную, нажав справа сверху значок "Обновить".

Q: На моем стареньком китайском планшете при создании виджета появляется надпись "Не удалось загрузить виджет". Что-то можно с этим сделать?
A: Дело в том, что обслуживание работоспособности виджетов - задача приложения, которое обеспечивает вам "Главный экран". Ну, или как его более правильно называть - Launcher (Лаунчер).
Если такое явление происходит, значит он неверно трактует параметры отображения виджета. Например, такое явление присутствует на некоторых старых китайских автомобильных Android-магнитолах. Выглядит это так:
Пример ошибки отображения виджетаПоказать
Screenshot_2019-11-26-08-47-50.png
Screenshot_2019-11-26-08-47-50.png (158.8 КБ) 17930 просмотров
Возможные решения:
  1. После создания такого виджета - тупо перезагрузить устройство. Вероятность довольно велика, что после перезагрузки вижет отобразится как ни в чем ни бывало. И все последующие виджеты будут создаваться корректно.
  2. Попробовать поставить какой-то другой лаунчер.
Q: Я переустановил приложение и хотел восстановить настройки виджетов. Наделал новых (пустых), запустил восстановление... но почему-то часть виджетов осталась ненастроенными. Что мне делать?
A: Давайте разберемся.
По всей видимости когда-то вы пытались создавать виджеты, но не продвигались дальше экрана начальной настройки, и отказывались от создания виджета. Возможно в этот момент происходил какой-то сбой или вы срубали приложение (тут сложно предположить, что может послужить причиной, но такое случается в Android), и в итоге в хранилище самого приложения отмечалось, что виджет создан, хотя на самом деле его нет. Получается такой своеобразный "скрытый" виджет, который нигде не отображается и при этом не функционирует, хотя само приложение "знает" о его существовании, но ему на него по большому счету наплевать... ну есть и есть.
Чтобы избавиться от таких "фантомных виджетов" следует полностью переустановить приложение. Удалите приложение с очисткой даннйх и кэша и установите вновь. Фантомные виджеты погибнут.
ИллюстрацияПоказать
cache.PNG
cache.PNG (24.89 КБ) 9429 просмотров
Q: На MIUI 12 (Android 10/11) перестали нажиматься виджеты
A: Все дело либо в системных правах, либо в энергосбережении.
И это может касаться не только данного приложения, а любого другого, использующего более-менее сложные виджеты, отображающие какую-либо "живую" информацию или откликающиеся на нажатия.

В первом случае нужно разрешить всплывающие окна в фоновом режиме. Это должно быть обязательно включено для приложения, предоставляющего данный виджет.
ИллюстрацияПоказать
IMG_20210121_142713.jpg
IMG_20210121_142713.jpg (38.03 КБ) 7447 просмотров
Во втором случае скорее всего нужно выключить оптимизацию расхода для данного приложения
Иллюстрация на примере SamsungПоказать
sams_energo.PNG
sams_energo.PNG (116.98 КБ) 7447 просмотров

Прикладываю вариант краткой документации в формате .pdf
Вложения
Краткое руководство по использованию виджетов в myMjDM.pdf
(1.33 МБ) 270 скачиваний
Последний раз редактировалось hc2hunter Сб сен 25, 2021 10:41 pm, всего редактировалось 65 раз.
За это сообщение автора hc2hunter поблагодарили (всего 3):
odinvolk (Пт ноя 29, 2019 5:41 pm) • serghei (Чт дек 05, 2019 12:26 am) • Oleg_Ltd (Ср июл 22, 2020 10:24 pm)
Рейтинг: 3.49%
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: [Приложение] мой MjDM (Android)

Сообщение tarasfrompir » Ср окт 09, 2019 10:30 am

В любом случае делай все нормально будет -много будет пользоватся но отзывы не увидишь
За это сообщение автора tarasfrompir поблагодарил:
hc2hunter (Ср окт 09, 2019 11:16 am)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Sergey.Chek
Сообщения: 107
Зарегистрирован: Ср фев 13, 2019 9:50 pm
Благодарил (а): 219 раз
Поблагодарили: 19 раз

Re: [Приложение] мой MjDM (Android)

Сообщение Sergey.Chek » Ср окт 09, 2019 11:17 am

Мне бы например, хотелось увидеть виджеты на рабочий стол, датчики, кнопки.
За это сообщение автора Sergey.Chek поблагодарил:
hc2hunter (Ср окт 09, 2019 12:00 pm)
Рейтинг: 1.16%
Raspberry pi 4
skill
Сообщения: 13
Зарегистрирован: Чт сен 26, 2019 10:28 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: [Приложение] мой MjDM (Android)

Сообщение skill » Ср окт 09, 2019 12:40 pm

Спасибо, мне зашло, в частности маштабирование ;-)
на 4pda в ветке majordomo все же отметься, до суда не все доходят ;-)
За это сообщение автора skill поблагодарил:
hc2hunter (Ср окт 09, 2019 3:55 pm)
Рейтинг: 1.16%
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: [Приложение] мой MjDM (Android)

Сообщение Divan » Ср окт 09, 2019 2:20 pm

Мне приложение понравилось, то что нужно. MajorDroid я вообще не пользуюсь, не нравится мне этот софт, в нем не зайти в настройки MD, чтобы произвести отладку или создать сценарии, метод или еще что-то. Обычно я удаленно захожу через браузер телефона, а тут все то же самое, только через приложение и я смогу удаленно произвести настройку MD. Когда включил скрыть меню и там нужно сделать свайп слева, то не всегда с первого раза удается вызвать меню, Вы можете добавить выступающий значок, типа ручки, чтобы удобно было свайпить?
За это сообщение автора Divan поблагодарили (всего 2):
Step40 (Ср окт 09, 2019 2:21 pm) • hc2hunter (Ср окт 09, 2019 3:45 pm)
Рейтинг: 2.33%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: [Приложение] мой MjDM (Android)

Сообщение directman66 » Ср окт 09, 2019 2:29 pm

В play когда планируется опубликовать?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср окт 09, 2019 3:45 pm

Спасибо всем за комментарии.

Я под Андроид всего неделю пишу... поэтому уж извиняйте если не все получается, или не замечаю каких-то неудобств.
Про Play подумаю на днях... в сущности приложение-то более-менее юзабельно даже на данном этапе.

Сейчас выложу версию 0.9.2. Дописал полноэкранный режим.

Divan писал(а):
Ср окт 09, 2019 2:20 pm
Когда включил скрыть меню и там нужно сделать свайп слева, то не всегда с первого раза удается вызвать меню, Вы можете добавить выступающий значок, типа ручки, чтобы удобно было свайпить?
Выезжающее меню - это стандартный Android-компонент Drawer NavigationUI. Получается, у вас могут возникать подобные затруднения и в других подобных приложениях (не моих)?
Я подумаю, что можно сделать...
Может чехол мешает, или защитное стекло в этом месте снижает чувствительность экрана?
Выносить какие-то "ручки" или значки, наоборот, не хотелось бы. Чтобы не заслонять сцену ненужными нагромождениями. В этом я считаю и минус последних релизов MajorDroid, где они впихнули свой нескрываемый красный "+" батон. Лично меня он просто выбешивал, т.к. постоянно на всех сценах что-то загораживал :)
...кстати, батон этот - тоже стандартный Андроидовский компонент, FAB (Floating Action Button). Типа кнопка часто используемых операций. Штука интересная, но, имхо, не везде он уместен.
За это сообщение автора hc2hunter поблагодарил:
Denis_k (Ср окт 09, 2019 3:47 pm)
Рейтинг: 1.16%
Sergey.Chek
Сообщения: 107
Зарегистрирован: Ср фев 13, 2019 9:50 pm
Благодарил (а): 219 раз
Поблагодарили: 19 раз

Re: [Приложение] мой MjDM (Android)

Сообщение Sergey.Chek » Ср окт 09, 2019 4:53 pm

Divan писал(а):
Ср окт 09, 2019 2:20 pm
Когда включил скрыть меню и там нужно сделать свайп слева, то не всегда с первого раза удается вызвать меню, Вы можете добавить выступающий значок, типа ручки, чтобы удобно было свайпить?
У меня чётко отрабатывает.
Raspberry pi 4
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср окт 09, 2019 4:59 pm

Divan писал(а):
Ср окт 09, 2019 2:20 pm
Когда включил скрыть меню и там нужно сделать свайп слева, то не всегда с первого раза удается вызвать меню,<...>
Кажется получилось. Попробуйте.
v0.9.2 (build 42)

Чувствительность увеличилась примерно на 5 миллиметров на среднеразмерном экране смартфона.
(или на 20dp экрана, если это кому-то о чем-то говорит)
Ответить