Браузер в режиме киоска андроид
Привет Хабр. Многие из нас каждый день трудятся на определёнными приложениями, создают что-то своё или выполняют требования нерадивого заказчика. Одним из таких требований может быть что-то вроде: «Хочу что бы из приложения нельзя было выйти, не хочу чтобы можно было делать что-то ещё, кроме как находится в моём приложений». В этом топике хочу поделиться мыслями, как же такое сделать.
Первое к чему мы приходим, что узнаём о новом типе приложений — Kiosk Mode — особый тип приложений, обычно работающие на устройствах в публичных местах. В таких приложениях функционал, к которому пользователь может иметь доступ ограничен самим приложением. Доступ к системе или каким-либо настройкам недопустим. Из таких приложений нельзя выйти. И так как мы здесь говорим об Андроиде, то, к большому сожалению, их API не предоставляет никаких возможностей для создания такого типа приложений. Попытаемся же разобраться, что со всем этим мы можем сделать и как хоть немного угодить нашему заказчику.
Хардварные кнопки и разъёмы
Каждое устройство предоставляем нам определённым набор кнопок и различных различных разьёмов, таких как USB, питание и т.к. В этом случае, как разработчики, мы поделать особо ничего не можем. Придётся при размещении предусмотреть конструкцию, которая бы полностью блокировала возможность использования такие вещей.
Панель с виртуальными кнопками
Но для нашего приложения данная панель может очень мешать, так как позволяет выйти из приложения, войти в настройки системы и прочее, что может нарушить необходимый ход работы. Но есть один способ исчезнуть эту панель. Всё что будет описано здесь и далее, требует root прав на вашем устройстве.
И так, нам будет необходимо выполнит простую команду:
service call activity 79 s16 com.android.systemui
Данную команду может выполнить либо через adb, либо же напрямую из приложения:
Это заставит враждебную для нас панель уйти с наших глаз. Но если вдруг эта панель будет нам нужна то вернуть её можно также просто командой:
am startservice -n com.android.systemui/.SystemUIService
Данное решение успешно работало на Андроид 3.0. Как обстоят дела с 4.0 пока сказать не могу.
Кнопки Home и Back
Если по каким-то причинам панель нужна, но нужно изменить поведение кнопок, то вот один рецепт. Начнём с простого, кнопки Back. Здесь всё легко, переопределяем метод:
-
Нам необходимо добавить в AndroidManifest необходимые настройки для нашей стартовой активити:
Это даст нам следующее, при нажатии на Home будет всплывать диалог:
Проблемы
К сожалению, не всё так радужно как кажется. Не все вопросы решены до конца. К примеру, посмотрим на стандартную клавиатуру:
В нижнем левом углу имеется маленькая кнопочка, которая позволяет перейти к настройкам клавиатуры, что не есть хорошо:
Решение — создать полностью свою клавиатуру, благо API это позволяет. Но решение слишком муторное, ради одной маленькой кнопочки.
Различный системные диалоги
Во время работы нашего приложения могут всплывать различные системные алерты и уведомления, наподобие низкого заряда батарей или уведомления об обновлении системы. Некоторые из них могут иметь доступ к системным настройкам.
К сожалению, мне не удалось выяснить как запретить показ таких диалогов. Если первый диалог можно выключить в настройках, то со вторым хуже, из него мы можем напрямую попасть в сами настройки. Решение — сделать так же как мы поступили с Launcher.apk — перенести или переименовать приложение настроек.
Заключение
В этой статье я постарался описать известные мне методы для создания Kiosk mode приложений. Если у хабрасообщества есть ещё какие-либо методы, то было бы здорово ими поделиться. Спасибо.
Fully Kiosk Browser
Lockdown your websites and apps to secure and flexible interactive kiosk.
Fully Single App Kiosk
Easy lockdown the device to one selected app with full kiosk protection.
Fully Video Kiosk
Add videos, images and websites to playlist and auto-play in the kiosk mode.
Kiosk App Features
From just a fullscreen browser to full mobile device management (MDM) solution, you decide what you get.
FLEXIBLE AND EASY TO USE
Kiosk Mode, Fullscreen, Show HTML/PDF/Videos, Motion detection, Screensaver, Remote Admin and more
Easy to Deploy
Settings Export/Import, Fast Device Provisioning, Remote Configuration, Volume and Offline Licensing
Easy to Integrate
Device Management, JavaScript API, REST API, MQTT Support, Scan NFC/QR, Detect iBeacons, Access Bluetooth and more
Fully Cloud
Organize, monitor and remote configure your Fully Kiosk devices from everywhere. Make fast device provisioning and manage installed apps.
Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Pricing
Fully PLUS License
One-time payment per device for using all PLUS features
and Fully Cloud Basic Features
6.90 € for a single device
Discounted Volume License available for 10+ devices
Fully Cloud Subscription
Recurrent payment for using Fully Cloud Advanced Features
Max. 1.20 €/month per device
Annual payment 15% off,
further discount for more devices
Contact Us
We don't like web forms and silly chatbots. Just check the FAQs and drop us an email in case you have any questions, ideas or requests.
We can offer you any consulting, custom feature development, integration or whitelabel kiosk apps for Android.
Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Краткое описание:
Бесплатный веб-браузер, позволяющий серфить по сайтам только из белого списка
Описание:
Sandbox - отличное решение в случае, когда необходимо, чтобы пользователи могли серфить только по определенным сайтам. Может быть использовано в школьных классах, дома для детей, в киосках, ресторанах, магазинах и т.д.
- Заблокировать параметры конфигурации паролем, чтобы запретить другим пользователям изменять параметры.
- Добавлять закладки утвержденных веб-сайтов из белого списка.
- Настроить видимость элементов пользовательского интерфейса.
- Автоматически возвращаться на главную страницу после того, как устройство бездействует в течение определенного промежутка времени.
- Ограничить пользователей одним или несколько сайтами.
- Запретить пользователям использование веб-форм.
- Запретить пользователям загружать файлы.
- Дом и классная комната - родители и учителя могут быть уверены, что дети посещают только определенные сайты.
- Рабочие девайсы - системные администраторы крупных компаний, в которых выдаются рабочие девайсы, могут гарантировать, что устройства, выданные для работы, используются для посещения только одобренных веб-сайтов.
- Киоски - системные администраторы в общественных местах могут создавать изолированную среду с использованием Sandbox, т.е. пользователи не могут переключиться на другие приложения.
- Рестораны - клиенты могут заказывать меню через веб, но не могут просматривать другие сайты.
- Магазины розничной торговли - покупатели могут просматривать онлайн-каталог магазина или онлайн-брошюры о продуктах, но не смогут открыть другие сайты.
О том, как запретить использование других браузеров, и о том, как запретить закрытие Sandbox, можно почитать на официальной странице (на английском языке; чтобы воспользоваться google-переводчиком, выберите на страничке из списка "Select Language" русский язык).
[Модуль] Easy Fully Kiosk Browser (easy_fkb)
Описание:
Позволяет получать информацию о состоянии устройства, а так же управлять устройством на котором установлен Fully Kiosk Browser. Почитать, что такое Fully Kiosk Browser и зачем он, а также чем он лучше чем штатный MJDM для андроида - можно в Connect'е
Вариант реализации:
Устанавливаете на свой андроид плашет, который у вас весит например на стене Fully Kiosk Browser (По сути, это просто веб-браузер, только с кучей настроек. Например, можно заблокировать выход из приложения, отключить кнопки управления, показать сцену на весь экран, стартовать нужную сцену после перезагрузки или потери интернета и многое другое. Так же у FKB есть API, которое позволяет управлять планшетом удаленно, например, включать экран, менять настройки, получать информацию о работе планшета и многое другое. Вот как раз в API модуль и работает.
Как настроить:
Для работы модуля нужно установить FKB и в настройках включить REST API + задать пароль доступа к API.
Чтобы модуль мог получать камшоты - нужно включить Motion Detected в настройках приложения, тогда появится кнопка.
Реализовано:
- Вкл/выкл экран
- Получение скриншота с экрана
- Отправка текста на синтез речи
- Блокировка и разблокировка режима "киоск"
- Управление яркостью экрана
- Управление громкостью устройства
- Получение фото с камеры (Не для всех устройств)
Функции в ближайшем обновлении!
Для того, чтобы новое обновление встало как положено нужно удалить и заного установить модуль, т.к. я поменял структуру БД.
Новые функции:
- Управление временем работы экрана
- Просмотр камшота (Работает только если включен Motion Detected)
- Иконки свойств, которыми можно управлять
Добрый день.
Fully Kiosk Browser платная, то что есть "вылеченная" версия версия это хорошо, но как быть в дальнейшем?)
Вам мы сообща с hc2hunter сделать проект, что бы он основные возможности Fully реализовал в своем приложении viewtopic.php?f=5&t=6737
И tarasfrompir-а не забыть, что бы все медиа управлялось с его модуля. viewtopic.php?f=5&t=6446
Может задача конечно не выполнимая, но было бы круто))
Добрый день.
Fully Kiosk Browser платная, то что есть "вылеченная" версия версия это хорошо, но как быть в дальнейшем?)
Вам мы сообща с hc2hunter сделать проект, что бы он основные возможности Fully реализовал в своем приложении viewtopic.php?f=5&t=6737
И tarasfrompir-а не забыть, что бы все медиа управлялось с его модуля. viewtopic.php?f=5&t=6446
Может задача конечно не выполнимая, но было бы круто))
В FKB огромное количество настроек - порядка 100, при всем уважении, hc2hunter замучается это писать. Тем более, зачем изобретать велосипед - если есть уже готовое? Приложение hc2hunter юзаю на телефоне, а на домашнем планшете FKB. Модуль терминалы вообще не юзаю, т.к. не вижу смысл. Если мне нужно TTS - я воспользуюсь стандартным Android TTS - мне этого достаточно.
Мануал
Что такое режим киоска?
Иногда вам может понадобиться запустить приложение (особенно веб-приложение) 24/7 в полноэкранном режиме.
В этом руководстве мы увидим, как запускать веб-браузеры в режиме киоска (полноэкранный режим) из командной строки в Linux.
В больших торговых центрах вы могли заметить, что компьютерный монитор, обычно подвешенный на стене, отображает определенное приложение в полноэкранном режиме в течение всего дня, каждый день.
Да и не только в торговых центрах, вы могли видеть это во многих местах, таких как рестораны, библиотеки, общественный транспорт и т. д.
Вы не увидите рабочий стол или ОС, а только приложение, работающее в полноэкранном режиме или в режиме киоска.
Запуск приложений в режиме киоска обеспечивает легкость понимания для пользователей: система помещает перед ними только те вещи, которые им нужны, и удаляют из их поля зрения то, к чему им не нужен доступ.
- вы не увидите информацию о рабочем столе или ОС,
- кнопка X (закрыть) будет скрыта,
Клавиша F11 работать не будет, - строки меню, панели инструментов не будут видны,
- строка состояния внизу не будет видна.
- контекстное меню, вызываемое правой кнопкой мыши, работать не будет.
- целевые ссылки не будут отображаться при наведении курсора на ссылки.
Как запустить браузер в режиме киоска (полноэкранный режим) из интерфейса командной строки
В рамках этого руководства мы посмотрим, как запустить Mozilla Firefox и Google Chrome и его версию Chromium с открытым исходным кодом в режиме киоска.
Запустк Mozilla Firefox в режиме киоска
Чтобы запустить Mozilla Firefox в режиме киоска или в полноэкранном режиме, просто выполните следующую команду в терминале:
Замените URL на необходимый адрес
Теперь веб-браузер откроет указанный веб-сайт в полноэкранном режиме.
Адресная строка, строка меню, панель инструментов и строка состояния не будут видны.
Вы не cможете использовать клавишу F11, чтобы вернуть браузер в нормальный режим.
Браузер будет продолжать работать, пока вы не нажмете клавиши ALT + F4, чтобы вручную закрыть окно браузера.
Если указанная выше команда не работает, попробуйте следующую команду:
Запуск Google Chrome / Chromium в режиме киоска
Чтобы запустить браузеры Google Chrome или Chromium в режиме киоска, выполните следующие действия:
Если вы не можете запустить Chrome / Chromium в режиме киоска с помощью вышеуказанных команд, попробуйте вместо этого следующую команду:
Отключить блокировку экрана и энергосбережение
Если вы хотите запустить свою систему в режиме киоска, вам необходимо предотвратить автоматическое отключение экрана или переход в режим ожидания через определенное время.
На дескттопах GNOME экран погаснет через 5 минут бездействия.
Чтобы отключить блокировку экрана, перейдите в Settings -> Privacy -> Screen Lock и установите «Never» для параметра «Blank Screen Delay».
Также отключите опцию автоматической блокировки экрана и отключите уведомления на экране блокировки.
Затем перейдите в раздел Settings -> Power, отключите параметр «Dim Screen When Inactive» и установите «Never» для параметра «Blank Screen».
Тема Safari не раскрыта
Anything in here will be replaced on browsers that support the canvas element
Passbolt – это менеджер паролей с открытым исходным кодом, который позволяет безопасно хранить и передавать учетные данные для входа на сайт, пароль роутера, пароль Wi-Fi и т.д. В этом руководстве будет показано, как установить Passbolt Community Edition (CE) на Ubuntu 22.04 с сервером базы данных PostgreSQL, который обычно быстрее, чем сервер базы данных MariaDB/MySQL. Особенности […]
socialscan – это инструмент командной строки для проверки использования электронной почты и имен пользователей социальных сетей на онлайн-платформах. Если задан адрес электронной почты или имя пользователя, socialscan возвращает, доступен ли он, занят или недействителен на онлайн-платформах. Другие подобные инструменты проверяют доступность имени пользователя, запрашивая страницу профиля рассматриваемого имени пользователя и на основе такой информации, как […]
Многие советы по безопасности, как правило, делятся на два лагеря: предназначенные для предприятий с постоянно работающими командами безопасности и инфраструктуры, или быстрая установка инструментов без контекста для одиночных веб-разработчиков. В этой статье мы пойдем по среднему пути и рассмотрим некоторые способы безопасного управления веб-сервером для различных распространенных сценариев развертывания. Цель – обеспечить лучшее понимание инструментария […]
Что такое afrog afrog – это высокопроизводительный, быстрый и стабильный, PoC настраиваемый инструмент для сканирования уязвимостей. PoC включает CVE, CNVD, пароль по умолчанию, утечку информации, идентификацию фингерпринтов, несанкционированный доступ, произвольное чтение файлов, выполнение команд и т.д. Он помогает специалистам по сетевой безопасности быстро проверять и своевременно устранять уязвимости. Особенности Основан на ядре xray, но не […]
Краткое руководство по сканированию портов Сканирование портов – это враждебная техника, часто используемая специалистами по тестированию на проникновение и хакерами для сканирования компьютеров, подключенных к Интернету, и определения того, какие приложения или службы прослушивают сеть, обычно для проведения таргетированных атак. Как правило программное обеспечение безопасности обнаруживает активное сканирование портов и отмечает его как потенциальную угрозу. […]
Читайте также: