Kiosk mode android studio

Peacemaker’s software

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

Настройка Android-устройства для работы в режиме киоска

  • Операционная система Android, начиная с версии 5 (реально 5.1, не везде на 5ой версии полноценно работает) позволяет штатно включить режим «киоска». Т.е. режим работы устройства, когда оно заблокировано от доступа ко всем частям операционной системы, и на экране пользователю видно только приложение с заданной владельцами устройства функциями.

Например, это может быть функция кассы, терминала оплаты услуг, витрины магазина и т.п.

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

  • Приложения-администраторы не могут запросто быть удалены с устройства, сначала надо опять же вручную это разрешить при попытке удаления. Не зря вредоносные «вирусные» приложения стремятся сделаться администратором.
  • Если Android устройство нужно сделать «киоском», т.е. выставить в публичный доступ для пользователей, заблокировав всё, кроме нужной функциональности – нужно разрабатываемое приложение сделать администратором, и даже более того «хозяином» устройства, т.е. самым главным администратором, которого нельзя удалить совсем. Т.е. пока не будет выполнен полный сброс устройства до заводских настроек – «хозяина» удалить нельзя.
  • Приложение-хозяин разрабатывается так, чтобы автоматически запускаться, блокировать систему, включая область уведомлений сверху, через которую можно вызвать системные настройки (злоумышленно) и изменить на устройстве что угодно, сломать «киоск». Выход из «хозяина» предполагается делать специальным скрытым вызовом ввода пароля, если пароль введен верно – «хозяин» разблокирует систему и завершает свою работу, возвращая на экран системную оболочку-лаунчер, из которой опять доступны все функции Android.
  • Когда приложение-«хозяин» установлено на устройство – нужно однократно дать команду, заносящую приложение навсегда в список администраторов, для этого необходимо:
  • Включить доступ к настройкам разработчика
    • Заходим в «Настройки» и выбираем раздел «О телефоне (О планшете)».
    • Потом скролим вниз и видим «Номер сборки», тапаем по нему семь раз.
    • После седьмого тапа система сообщит пользователю, что он стал разработчиком.

  • Зайти в раздел для разработчиков, и включить «Отладку по USB»

  • Подключить устройство USB-кабелем к компьютеру и
    • Установить драйвер ADB (именно “ADB-драйвер”, а не другие !), если он не установится автоматически: искать в Сети для своего устройства (и убедиться, что он без желтого треугольника в Диспетчере Устройств, если используете ОС Windows)

  • разрешить передачу данных на телефоне, если система запросит
  • разрешить передачу данных на стороне компьютера, если система запросит
  • ADB – это подсистема консольного администрирования Android-устройств (Android Debug Bridge), на компьютере собой представляет каталог с консольной программой adb.exe и её библиотеками, загружайте последнюю версию отсюда: https://developer.android.com/studio/releases/platform-tools.html
  • После загрузки ADB, распаковки на своем компьютере, откройте консоль (в ОС Windows запустив программу “cmd”), и попробуйте увидеть свое устройство подключенным к компьютеру, командой “adb devices”:

  • Если в списке есть строка device – то, наконец-то, можно дать последнюю команду на сохранение приложения в качестве «хозяина»:

adb shell dpm set-device-owner kiosk.app.package/AdminReceiver

(данная команда применима только к конкретному приложению с именем пакета «kiosk.app.package », в котором есть именно такой компонент как «AdminReceiver »)

  • Сообщение “Success:…” скажет об успешном завершении нашего нелегкого дела 🙂
  • Если будет сообщение об ошибке типа “Not allowed to set the device owner because there are already some accounts on the device” – нужно удалить все экаунты, которые существуют на устройстве, чаще всего потребуется сброс на заводские настройки.
  • Теперь можно отключить включенную «Отладку по USB”, чтобы злоумышленникам, укравшим устройство – было бы гораздо сложнее забраться внутрь с помощью ADB
  • … ну и запускать на устройстве установленное приложение-киоск, но ВНИМАНИЕ: предварительно узнав у его разработчика способ разблокировки, и пароль !
Читайте также:  Contra cam антирадар для андроид

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

Comments are closed.

Pages

Archives

Categories

  • Android приложение для такси (5)
  • Battery charge (5)
  • BLE (2)
  • Bluetooth (6)
  • camera (3)
  • cloud technology (9)
  • firmware (2)
  • Google Play\Market (14)
  • GPS (14)
  • GSM (5)
  • Hardware (3)
  • ice fishing (10)
  • Internet (12)
  • iptv (1)
  • News (94)
  • polar (2)
  • Sales (1)
  • SMS messages (2)
  • Software for Android (87)
  • Software for tablets (13)
  • Software for Windows Mobile 5, 6 (2)
  • Software for Windows x86 (4)
  • SQLite (7)
  • tracker (1)
  • WiFi (9)
  • автоматизация торговли (2)
  • Автомобили (6)
  • акселерометр (1)
  • бизнес (5)
  • биржа фриланса (1)
  • блюда (1)
  • букеты (1)
  • гонки (1)
  • детектор движения (1)
  • диктофон (1)
  • еда (1)
  • инвалид (1)
  • камера (1)
  • карты (7)
  • Кидалы российского бизнеса (1)
  • маркер (1)
  • менеджмент заказов (1)
  • микрофон (1)
  • облачное хранение данных (3)
  • обои Android (1)
  • общение через смартфоны (1)
  • отпуск (1)
  • очки со встроенным Android (1)
  • православие (1)
  • приложение-клиент (3)
  • приложение-клиент Андроид (3)
  • пульс (2)
  • пульсометр (2)
  • разработка под Андроид (59)
  • ралли (2)
  • рыбалка (15)
  • рыболовная прикормка (4)
  • Самара (1)
  • СМС сообщения (2)
  • социальный проект (1)
  • телефония (1)
  • техническое задание (4)
  • товарищество собственников жилья (1)
  • товарищество собственников недвижимости (1)
  • транспорт (1)
  • трекер (2)
  • ТСЖ (1)
  • ТСН (1)
  • удаленное управление (3)
  • фриланс (1)
  • цветы (2)
  • экспертная система (1)

(C) All rights reserved, copy after confirmation only.

Источник

Kiosk Mode приложения на Android

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

Первое к чему мы приходим, что узнаём о новом типе приложений — Kiosk Mode — особый тип приложений, обычно работающие на устройствах в публичных местах. В таких приложениях функционал, к которому пользователь может иметь доступ ограничен самим приложением. Доступ к системе или каким-либо настройкам недопустим. Из таких приложений нельзя выйти. И так как мы здесь говорим об Андроиде, то, к большому сожалению, их API не предоставляет никаких возможностей для создания такого типа приложений. Попытаемся же разобраться, что со всем этим мы можем сделать и как хоть немного угодить нашему заказчику.

Хардварные кнопки и разъёмы

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

Читайте также:  Tanix tx9s android tv box amlogic s912 2gb ram 8gb storage

Панель с виртуальными кнопками

Начиная с версии Андроид 3.0 нам предлагают некоторую альтернативу хардварным кнопкам, такую как панель в нижней части экрана. Сюда входят кнопки «Назад», «Домой», «Опции», статус батареи и прочее.

Но для нашего приложения данная панель может очень мешать, так как позволяет выйти из приложения, войти в настройки системы и прочее, что может нарушить необходимый ход работы. Но есть один способ исчезнуть эту панель. Всё что будет описано здесь и далее, требует root прав на вашем устройстве.
И так, нам будет необходимо выполнит простую команду:
service call activity 79 s16 com.android.systemui

Данную команду может выполнить либо через adb, либо же напрямую из приложения:

Это заставит враждебную для нас панель уйти с наших глаз. Но если вдруг эта панель будет нам нужна то вернуть её можно также просто командой:
am startservice -n com.android.systemui/.SystemUIService

Данное решение успешно работало на Андроид 3.0. Как обстоят дела с 4.0 пока сказать не могу.

Кнопки Home и Back

Если по каким-то причинам панель нужна, но нужно изменить поведение кнопок, то вот один рецепт. Начнём с простого, кнопки Back. Здесь всё легко, переопределяем метод:

Теперь сложнее, кнопка Home. Google предусмотрительно отнёсся к этой кнопке, так как это единственный способ покинуть приложение и вернуться на главный экран, но для нас это беда, как раз именно это нам и не нужно. Что мы можем сделать:

    Нам необходимо добавить в AndroidManifest необходимые настройки для нашей стартовой активити:

Это даст нам следующее, при нажатии на Home будет всплывать диалог:

Уже неплохо, но как сделать чтобы этот диалог не появлялся, а открывалось наше приложение.

  • Мы можем выбрать галочку, перезагрузить девайс и наше приложение будет запускаться по умолчанию, но это не тру вей, мы можем также легко снять эту галку в настройках системы. Пойдём по другому пути, мы найдём лаунечер в недрах операционной системы и просто переименуем его и/или отправим в другое место:
    mv /путь/Laucher.apk /путь2/LaucherOld.apk
    Всё, на этом основное приложение на устройстве одно — наше. Больше никакого всплывающего диалогов. Если же нужно иметь доступ к Launcher’у, то либо возвращаем его назад, либо создаём секретное меню и запускаем Laucnher оттуда куда мы его перенесли.
  • Проблемы

    К сожалению, не всё так радужно как кажется. Не все вопросы решены до конца. К примеру, посмотрим на стандартную клавиатуру:

    В нижнем левом углу имеется маленькая кнопочка, которая позволяет перейти к настройкам клавиатуры, что не есть хорошо:

    Решение — создать полностью свою клавиатуру, благо API это позволяет. Но решение слишком муторное, ради одной маленькой кнопочки.

    Различный системные диалоги

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

    Источник

    How to turn your Android application into a kiosk

    Nowadays, we find kiosk devices in more places than ever before. We use these at the train station, tourist information centers, shops, museums, hotels, post offices, and more. They usually provide an app giving useful information, the ability for communication, commerce, entertainment marketing or education. These are often equipped with a colorful touchscreen to facilitate user interaction.

    Android devices can be turned into kiosks by configuring them as a COSU app (Corporate Owned Single Use application) or a Single-Use device. In this article, I will explain how to enable kiosk mode and build a simple application for this purpose.

    Читайте также:  Как изменить рабочий стол для андроид

    COSU / Kiosk mode

    To create a secure kiosk mode we have to disable some Android features. It is important to capture the user within one application, without a way to close it or run a different app. To achieve this we need to satisfy these requirements:

    • A single application – the user shouldn’t be able to exit our application and access any settings or private data
    • Hidden Home and Recent Apps buttons – these buttons are the most common way to navigate in Android
    • Disabled status bar – it is possible to navigate to settings or use a notification to change context
    • Running with device’s boot – device should be ready to use immediately after powering on
    • Turning off incoming calls – interaction with the application shouldn’t be interrupted
    • Blocking all paths to settings – there are many ways to access settings and we should consider them all (for example it is possible to go to language settings through the keyboard)
    • The device should be always awake – the user will not have to search for the power button,
    • The app is in fullscreen mode

    Starting from Android 5.0 we have the opportunity to easily create a kiosk application in Android. Let’s see how we can achieve it.

    Screen Pinning

    Screen Pinning is a feature which allows you to show only one application until unpinning. It can be used when giving your phone to children or other people without risk of leaking personal information. On every smartphone with system version starting from Android 5.0 Lollipop, you can enable this feature manually in Settings → Security → Screen pinning → On. You can also specify if the device should show your lock screen after unpinning.

    After that, when clicking the Recent Apps button you will see a blue pin icon which allows you to pin the application to your screen. To exit the pinned screen you have to hold recent and home buttons down for a while.
    With screen pinned enabled, the system behaviour has changed:

    • the status bar is blank and status icons are hidden,
    • Home and Recent apps buttons are disabled, and
    • other apps cannot launch new activities.

    In our application, we can also turn this mode on programmatically with startLockTask ( ) in Activity, which will require user confirmation.

    The pinned application has a visible but disabled home and recent button and it’s still possible to change context. We will need more privileges to lock the user in our kiosk and pin the screen without confirmation.

    Device Admin

    It is possible to make our application the administrator of the device, which will enable more possibilities to adjust system settings and manage applications. You can find your current privileged apps in Settings → Security → Device admin apps. After opening the admin details you can see the permissions each app are using. Most permissions are related with wiping device data and blocking the screen if you lose your phone.

    If our application is a device admin, it can pin screen without confirmation. Home and Recent apps buttons are also hidden, so exiting from the application is not possible manually and only available from the code.

    Источник

    Оцените статью