Приложения Режима Киоска На Android

Привет Хабр.

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

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

В этой теме я хочу поделиться своими мыслями о том, как это сделать.

Первое, к чему мы приходим, это то, что мы узнаем о новом типе приложений — Kiosk Mode — особом типе приложений, который обычно запускается на устройствах в общественных местах.

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

Доступ к системе или любым настройкам запрещен.

Вы не можете выйти из таких приложений.

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

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



Аппаратные кнопки и разъемы

Каждое устройство предоставляет нам определенный набор кнопок и различные разъемы, такие как USB, питание и т. д. В этом случае мы, как разработчики, мало что можем сделать.

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



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

Начиная с версии Android 3.0 нам предлагается некоторая альтернатива аппаратным кнопкам, например, панель внизу экрана.

Сюда входят кнопки «Назад», «Домой», «Параметры», состояние батареи и многое другое.



Приложения режима киоска на Android

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

Но есть один способ заставить эту панель исчезнуть.

Все, что будет описано здесь и ниже, требует root-прав на вашем устройстве.

И так, нам нужно будет выполнить простую команду: активность сервисного вызова 79 s16 com.android.systemui Эту команду можно выполнить как через adb, так и напрямую из приложения:

  
   

Runtime.getRuntime().

exec(new String[]{"su","-c","service call activity 79 s16 com.android.systemui"});

Благодаря этому враждебная нам панель исчезнет с наших глаз.

Но если нам вдруг понадобится эта панель, мы также можем вернуть ее просто командой: am startservice -n com.android.systemui/.

SystemUIService Или:

Runtime.getRuntime().

exec(new String[]{"am","startservice","-n","com.android.systemui/.

SystemUIService"});

Это решение успешно работало на Android 3.0. Пока не могу сказать, как обстоят дела с 4.0.

Кнопки «Домой» и «Назад»

Если по каким-то причинам панель нужна, но нужно изменить поведение кнопок, то вот один рецепт. Начнем с чего-то простого — кнопки «Назад».

Здесь все просто, переопределяем метод: Теги: #Android #режим киоска #Разработка Android #Разработка Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.