Режим киоска. Kiosk Mode приложения на Android. Режим киоска в Android

Современная операционная система Windows 10 предоставляет пользователям огромное количество функций и возможностей, которые делают её универсальной и позволяют решать практически любые задачи. В том числе и весьма специфические.
Одна из весьма интересных функций Windows 10 — режим киоска . Что это такое? Это такой режим работы, при котором пользователю даётся доступ только к одному приложению. Ничего более ему доступно не будет.
Это весьма интересная функция, использовать которую можно как в домашних условиях, так и в коммерческих фирмах и на предприятиях. Сразу оговорюсь: настроить ограниченный доступ к компьютеру в таком виде можно только в нескольких редакциях Windows10 — профессиональная Pro, корпоративная Enterprise и Education для образовательных учреждений.
Давайте подробнее разберёмся зачем он нужен и когда его надо применять!

Зачем нужен Режим Киоска в Виндовс?!

Если компьютер или ноутбук приходится с кем то делить — это всегда плохо. В первую очередь потому, что один пользователь может сделать что-то такое, что может навредить другим. У меня, например, таким пользователем является племянник, который садится поиграть в игры, а в результате после этого я частенько не могу найти нужные файлы на рабочем столе.
Другим ярким примером может служить, например, торговый терминал в магазине. Пользователю должно быть доступно только одно приложение в полноэкранном режиме и ничего иного кроме этого.
Единственная оговорка — режим киоска Windows 10 работает только с плиточными приложениями приложения из магазина. С традиционными настольными приложениями он работать не умеет!

Как включить Режим Киоска?!

Для активации режима ограниченного доступа к компьютеру в Windows 10 надо сначала открыть меню параметров:

Открываем раздел «Учетные записи». В меню слева ищем подраздел «Семья и другие люди»:

Здесь надо будет сначала создать учётную запись под которой будет запускаться режим киоска.

В открывшемся окне Вам будет предложено ввести адрес электронной почты пользователя, имеющего учётную запись Майкрософт или его телефон. Мы же кликаем на ссылку «У меня нет данных для входа этого человека». Нажимаем на кнопку «Далее».

Теперь нам предстоит создать локальную учетную запись:

Вводим имя пользователя и пароль. Переходим далее и выходим обратно в раздел «Семья и другие люди». Теперь тут будет созданная учётка:

Сначала выбираем учетную запись, под которой будет проводится запуск режима киоска Виндовс 10.

Как я уже говорил, выбрать можно только так называемые «плиточные» приложения, которые работают в начальном экране Windows 10. Они будут отображаться в отдельном списке.

После этого можно закрывать окно параметров системы и пробовать зайти в Windows 10 с ограниченными возможностями режима киоска. Мне от точно пригодится для того, чтобы защититься от проделок племянника. Я поставлю в запуск солитёра или иную из доступных игр и пусть играет. Но теперь он не сможет удалить ничего лишнего и я буду спокоен!

Кстати, просто так выйти из режима киоска не получится. Чтобы это сделать, надо будет нажать комбинацию клавиш Ctrl+Alt+Del и уже через экран блокировки выйти из ограниченного режима работы Виндовс и выбрать другого пользователя.

В своей недавней статье мы рассмотрели вопрос - как дать возможность использовать ваш компьютер сторонними лицами без предоставления доступа ко всей хранящейся в нем информации, используя функцию "Гостевой режим" вашей операционной системы.

Более быстрым решением могло бы стать предоставление гостю своего собственного, отдельного браузера.

Приведенные ниже способы отнюдь не являются безопасными. Любой желающий сможет выйти из гостевого режима назад в основной или ознакомиться с вашими файлами, хранящимися на компьютере. Однако, если вы еще не впали в параноидальную подозрительность, то эти способы могут послужить вполне достойной альтернативой.

Создание отдельного пользователя в браузере Хром

Этот браузер дает возможность создания отдельных профилей, добавляя "пользователей". А каждый пользователь имеет свои собственные: историю, логины, закладки и другие настройки.

При этом следует учитывать, что любой из пользователей легко может переключиться на ваш основной профиль в Хроме без немедленного запроса его идентификации, поскольку не существует никакой защиты от этого. Гугл предупреждает, что это не метод лишения вас права на частные данные, а всего лишь удобство для людей совместно использующих Хром с одной и той же учетной записью.

Для создания нового пользователя Хрома, откройте страницу "Настройки" в меню Хрома, прокрутите его вниз и нажмите на пункт "Добавить нового пользователя".

Вам предложат выбрать имя и значок для нового пользователя. Если вы хотите для всех гостей создать один отдельный профиль пользователя, то без колебаний выбирайте имя "Гость".

После этого вы сможете переключаться между пользователями, находясь внутри Хрома, или использовать специальный ярлык на рабочем столе компьютера для запуска Хрома с конкретной учетной записью пользователя.

Установите другой профиль Firefox

Вы также можете создать отдельные профили пользователей в Firefox , хотя эта функция не столь прозрачна. Чтобы его открыть, закройте все окна Firefox , нажмите Windows Key + R для открытия диалога и запустите следующую команду:

Firefox.exe -P

В менеджере профиля Firefox вы можете нажать кнопку "Создать профиль", чтобы добавить новые профили пользователей. Вы можете запустить Firefox с firefox.exe -р для возможности выбора между профилями. Кроме того, можно снять запрет на запрос выбора профиля при каждом запуске Firefox, тогда при запуске окна будет предлагаться выбрать профиль пользователя. Каждый профиль пользователя имеет свои собственные закладки, историю, куки, настройки и другие данные пользователя.

Используйте режим киоска в Chrome

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

Чтобы использовать эту функцию, достаточно создать новый ярлык для Chrome - вы можете сделать это, создав копию уже существующего ярлыка Chrome. Щелкните правой кнопкой мыши по ярлыку, выберите "Свойства", и добавить - киоск в конец его перечня целей.

Закройте все открытые окна Chrome, затем запустите ярлык и Chrome откроется в полноэкранном режиме, занимая собой полностью весь экран. Он будет по-прежнему использовать в Chrome те же данные о просмотренных страницах, так что вы можете объединить эту функцию с отдельным профилем Chrome , чтобы действительно создать изолированную среду для просмотра.

Любой человек может по-прежнему нажать Alt + F4, чтобы закрыть Chrome или нажать Alt + Tab для переключения между работающими приложениями, так что это не идеальное решение для обсуждаемой цели. В принципе и Firefox может также функционировать в полноэкранном режиме (киоск-режиме) с помощью программных дополнений.

Дать гостю еще один браузер

Хороший способ решения проблемы - наличие нескольких браузеров на вашем компьютере. Если гость захочет использовать веб-браузер, вы можете просто предоставить ему другой браузер - если вы используете Chrome или Firefox, позвольте ему использовать Internet Explorer. Если вы используете Internet Explorer, установите такие браузеры, как Chrome или Firefox, и дайте гостю возможность использовать какой-либо из них.

Каждый браузер имеет свои отдельные закладки, куки, и информацию о логинах, поэтому гость будет иметь свою собственную отдельную среду просмотра тех пор, пока он использует тот браузер, которым вы обычно не пользуетесь. Не возникнет необходимости в установке браузера, если у вас уже установлен Internet Explorer, но вы никогда не используете его.

Используйте режимы приватного просмотра - Incognito или Private

Вы также можете для ваших гостей использовать Incognito or Private режимы просмотра веб-браузера. В частном режиме просмотра браузер использует отдельные куки так, что ваши гости не будут регистрироваться в любой из ваших учетных записей. Тем не менее, они будут иметь доступ к закладкам, истории посещенных страниц и автозаполнению адресной строки записи, так что это не самый "частный" режим - они могут невольно наткнуться на записи в вашей истории посещения сайтов, когда будут вводить свою информацию в адресную строку.

Когда ваш гость заканчивает использовать ваш компьютер, он может просто закрыть просматриваемое в режиме инкогнито окно или просто выйти из частного режима просмотра, и их регистрация будет автоматически отменена на любых сайтах, использованных ими во время сеанса работы. История посещенных гостем страниц будет также стерта. Вам не придется беспокоиться об очистке профиля гостя и обеспечения выхода из его аккаунтов.

Благодарю наших комментаторов, предложивших некоторые из изложенных выше идей в их комментариях к предыдущей статье! Обратите внимание, что ни один из этих методов не предлагает уровень безопасности, сопоставимый с гостевой учетной записью в операционной системе - в статье приведены некоторые быстрые способы, предоставляющие людям, вызывающим ваше доверие, возможность работы на вашем компьютере с помощью изолированного браузера. Но не забывайте - для них не составит труда, закрыв изолированный-гостевой браузер, использовать ваш основной браузер.

Реализовано в версии 8.3.10.2168.

В интерфейсе Такси мы реализовали несколько новых режимов основного окна клиентских приложений. Они позволят вам использовать максимальное пространство экрана и скрыть стандартные элементы интерфейса, которые не нужны для задачи, выполняемой приложением.

Эти режимы будут удобны в тех случаях, когда приложение запускается на специализированных устройствах, таких как кассовые аппараты, терминалы сбора данных и тому подобных. Также эти режимы будут полезны для работы в простых приложениях, состоящих из нескольких форм, и не требующих отображения стандартных панелей интерфейса и области системных команд.

Нужно сказать, что в платформе существуют некоторые возможности максимизации рабочего пространства: открытие формы в отдельном окне, скрытие активных панелей сочетанием клавиш Ctrl + Shift + ~ . Но они не позволяют целиком решить задачи, возникающие в упомянутых сценариях работы. Поэтому мы решили, что нужно какое-то комплексное решение. Так и появились новые режимы основного окна.

Управление режимом

Задать режим основного окна вы можете в конфигураторе, или из встроенного языка. Но тут есть особенность. Мы предполагаем, что режим основного окна определяется самой сутью прикладного решения. Поэтому возможность изменить его программно существует только при старте прикладного решения. В дальнейшем клиентское приложение будет функционировать в том режиме, который ему установлен.

В конфигураторе для этого мы добавили новое свойство конфигурации Режим основного окна клиентского приложения , а во встроенном языке реализовали два метода: и ПолучитьРежимОсновногоОкна() . Метод УстановитьРежимОсновногоОкна() вы можете вызывать только в обработчике события ПередНачаломРаботыСистемы .

Возможные режимы

Возможных режимов работы получилось четыре. Обычный – для работы как раньше, и три новых режима: РабочееМесто , ПолноэкранноеРабочееМесто и Киоск . Понять их отличия можно на примере начальной страницы 1С:Бухгалтерии .

В режиме РабочееМесто мы скрываем все панели и область системных команд (главное меню и набор вспомогательных команд). Скрываем надпись Начальная страница , кнопки навигации Вперед /Назад , а также отключаем сочетания клавиш, которые используются в этих скрытых элементах интерфейса.

Режим ПолноэкранноеРабочееМесто скрывает всё то же самое, что и режим РабочееМесто , но дополнительно к этому основное окно разворачивается на весь экран, и скрываются кнопки управления окном (Свернуть , Восстановить , Закрыть ).

В режиме Киоск дополнительно ко всему перечисленному скрывается гиперссылка с именем пользователя и кнопка О программе . Этот режим мы позиционируем для «внешних» пользователей, поэтому персональная информация тут не используется и не нужна.

Примеры использования

Режим РабочееМесто вы можете использовать для простых приложений. Например, для гипотетического приложения Почтовый клиент , у которого есть всего две функции – приём и отправка почты.

Тут на начальной странице расположена одна форма. Всё лишнее скрыто. И даже скрыт заголовок формы. Такую возможность мы тоже реализовали, она управляется отдельно.

Режим ПолноэкранноеРабочееМесто вы можете использовать, например, для создания рабочего места кассира.

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

Режим Киоск удобен для простых приложений, в которых не требуется аутентификация пользователя в информационной базе. Например, это может быть платёжный терминал.

Как совсем фантастический пример, в этом режиме можно реализовать интерфейс банкомата, например.

Особенности веб-клиента

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

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

И только по нажатию кнопки в этом диалоге (по действию пользователя) происходит переход в полноэкранный режим.

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

Скрытие заголовка формы

Применение того или иного режима основного окна приводит к изменению сразу многих элементов интерфейса. Однако вам может потребоваться более тонкое управление некоторыми из них, например заголовком формы или кнопкой закрытия окна. Для этих элементов мы реализовали дополнительное отдельное управление.

Скрывать или показывать заголовок управляемой формы вы можете теперь с помощью свойства формы ОтображатьЗаголовок . Если установлен Обычный режим основного окна, то это свойство действует только на формы, расположенные на начальной странице. В других режимах это свойство действует на все управляемые формы.

Например, в режиме Обычный начальная страница с двумя формами, у которых заголовки включены или выключены, будет выглядеть следующим образом.

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

А при выключенном заголовке формы снова появляется надпись Начальная страница .


Скрытие кнопки закрытия окна приложения

Ещё одно новое свойство управляемой формы, ОтображатьКнопкуЗакрытия , позволяет вам скрыть кнопку закрытия формы и одновременно отключить стандартные действия, выполняемые по клавише Esc . Оно работает только в новых режимах открытия основного окна РабочееМесто , ПолноэкранноеРабочееМесто или Киоск .

С помощью этого свойства вы можете создавать формы, которые пользователь не сможет закрыть стандартными способами. Предполагается, что для таких форм вы определите иной способ закрытия.

Анна Воронова Июнь 9, 2015

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

Обычный информационный киоск представляет собой терминал с установленным программным обеспечением, с которым пользователь может совершать ограниченный набор действий. Самые распространенные примеры: банкоматы, фотокабинки, автоматы по продаже билетов, автоматы для выдачи талончиков в очередь и другие.

Киоски могут использовать различные технологии: сенсорный экран, купюроприемник, фото и видеокамеры, принтеры и сканеры, Wi-Fi, NFC и т.д. Их общая черта - защита системы от несанкционированной активности. ПО на таких терминалах пресекает любые попытки пользователя изменить настройки системы, выполнить сброс или установить другие приложения.

Мобильные киоски

Бурное развитие привело к тому, что смартфоны и планшеты также стали использовать в качестве информационных киосков. Мобильные киоски имеют ряд существенных преимуществ перед стандартными терминалами: они дешевле за счет компактных размеров и массового производства, а также обладают более широким функционалом.

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

Чтобы устройство заработало в режиме киоска, на нем запускается программа, которая блокирует функционал ОС и не дает пользователю выйти из приложения.

Приложения-киоски могут иметь засекреченную административную панель или конфигурироваться с сервера удаленно. Также можно настроить систему отчетов: приложение будет отправлять на сервер статистику о поведении пользователя и информировать администратора о своем состоянии.

Команда Azoft занималась , работающих как kiosk mode для Android-устройств. В этой статье мы обсудим подводные камни разработки приложений-киосков и способы решения возникающих проблем.

Режим киоска в Android

Чтобы превратить Android-устройство в киоск, для начала необходимо заблокировать все его кнопки и разъемы. В этом случае самым банальным и при этом самым эффективным решением будет поместить девайс антивандальный ящик, что, конечно, далеко не всегда возможно. Кроме того, остаются статус бар, системные диалоги и виртуальная клавиатура, с помощью которых можно выйти в настройки. Как же обойти эти трудности?

Android 5.0: долгожданный API

Начнем с хороших новостей: в Android 5.0 появился API под названием Screen pinning. Pin в переводе с английского означает закрепить или пригвоздить. Новый API “закрепляет” экран и запрещает пользователю покидать выбранное приложение. Этот функционал можно использовать как при создании киосков для обслуживающего персонала, так и в разработке учебных приложений для проведения экзаменов и оценки знаний.

При активации режима Screen pinning пользователь не прерывается системными диалогами и уведомлениями, не имеет доступа к другим приложениям, не может выйти в главный экран и не видит статус бар.

Активировать режим можно в настройках или программными средствами:

  • Разрешите Screen pinning в настройках, а затем выберите нужное приложение и закрепите его, подтвердив свой выбор.
  • Для программной активации достаточно вызвать метод startLockTask() и подтвердить включение режима блокировки.

Android до 5.0: как обойти систему?

В более ранних версиях Android SDK режим киоска, к сожалению, не предусмотрен. Нет и целостного API для организации полной блокировки. Поэтому все компоненты блокируются отдельно и по-разному в разных версиях.

Кастомизация прошивки может существенно упростить реализацию kiosk mode, но мы предлагаем несколько техник, которые помогут заблокировать нежелательные элементы в версиях Android ниже 5.0, не требуя ни особой прошивки, ни root-прав.

Перезагрузка

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

Это несложно: описываем ресивер в манифесте, даем разрешение на получение сообщения о перезагрузке устройства и создаем подкласс broadcast ресивера, который будет запускать наше приложение.

AndroidManifest.xml:

BootReceiver.java:

Public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent myIntent = new Intent(context, MyKioskModeActivity.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(myIntent); } }

Кнопка BACK

Для кнопки Back просто переопределяем метод.

@Override public void onBackPressed() { // здесь ничего не делаем }

Кнопка HOME

Кнопку HOME невозможно перехватить, поэтому, чтобы предотвратить переход на главный экран при её нажатии, мы указываем приложение-киоск как Launcher. Добавляем в манифест три строчки:

AndroidManifest.xml:

Теперь при нажатии на кнопку HOME будет предлагаться выбор между двумя лаунчерами: нашим и системным. Выбираем наше приложение в качестве лаунчера по умолчанию - и готово!

Кнопка POWER

Кнопка POWER вызывает больше всего вопросов. Один из хаков, позволяющих обработать ее нажатие - задать окно приложения-киоска в качестве экрана блокировки. Однако этот способ гарантированно сработает только на версиях Android ниже 4.0.

@Override public void onAttachedToWindow() { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); }

Системные диалоги

Длинное нажатие кнопки HOME или POWER вызывает системный диалог, с помощью которого можно выйти из приложения. Кроме того существуют еще окна обновления ОС и низкого заряда батареи, которые тоже опасны для киоска, поскольку могут иметь доступ к системным настройкам.

Чтобы полностью избавиться от системных диалогов мы прописываем следующее: при потере фокуса Activity посылает Broadcast - закрыть все системные диалоги.

@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if(!hasFocus) { Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); sendBroadcast(closeDialog); } }

Клавиатура

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

Панель статуса

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

Первое, что можно сделать, - задать приложению полноэкранный режим.
До версии 4.0 можно также указать тип окна TYPE_SYSTEM_ALERT - в этом случае приложение-киоск будет показываться поверх всех системных элементов.

Еще один способ - сворачивать статус бар, как только он готов развернуться. Для этого необходимо указать разрешение в манифесте.

@override public void onWindowFocusChanged(boolean hasFocus)
{ if(!hasFocus) { Object service = getSystemService("statusbar"); Class statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse =
statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } }

Начиная с Android 4.1 для сокрытия панели статуса можно использовать SDK.

View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); ActionBar actionBar = getActionBar(); actionBar.hide();

Еще один популярный метод: создание прозрачного объекта View, который перехватывает все клики, на месте статус бара. Для реализации требуется флаг SYSTEM_ALERT_WINDOW.

Описанные методы - это далеко не полный перечень вариантов блокировки системных элементов в Android. Разработчики постоянно находят или изобретают что-то новое, делятся опытом, и создают приложения-киоски, обойти ограничения в которых не способен ни один, даже самый хитрый пользователь.