KIOSK: переход активности при сохранении блокировки задачи, чтобы избежать «закрепленных» «незакрепленных» тостов - PullRequest
0 голосов
/ 05 августа 2020

Я создаю приложение KIOSK для определенного устройства c. Приложение является владельцем устройства.

Хотя в приложении было только одно действие, я решил эту проблему, вызвав startLockTask() в onResume().

Проблема теперь, у меня несколько действий, и я хотите перейти от действия A к действию B таким образом, чтобы действие B «заменяло» действие A, что означает, что действие A должно d ie, а действие B должно запуститься.

Я сделал это как это

stopLockTask();
finish();
startActivity(intent);

Мне пришлось позвонить stopLockTask(), иначе он не закончится sh.

Вызов startLockTask() при действии B onResume() работает, но это уродливо, потому что несколько тостов будут появляться сообщения «закреплено» и «откреплено».

Есть ли обходной путь, чтобы, возможно, убить действие, не останавливая задачу блокировки? Или скрыть всплывающие сообщения?

1 Ответ

0 голосов
/ 17 августа 2020

Добавьте свое приложение в allowList для режима блокировки задач. Фактически вы не используете функцию Lock Task Mode, потому что ваше приложение не зарегистрировано в allowList. Вместо этого вы используете закрепление экрана (которое может быть экранировано пользователем).

Сделайте это от вашего владельца устройства:

// Allowlist two apps.
private static final String KIOSK_PACKAGE = "com.example.kiosk";
private static final String PLAYER_PACKAGE = "com.example.player";
private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE};

// ...

Context context = getContext();
DevicePolicyManager dpm =
    (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName adminName = getComponentName(context);
dpm.setLockTaskPackages(adminName, APP_PACKAGES);

Заполните массив APP_PACKAGES своими пакетами (только пакет), которому требуется функция задачи блокировки.

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

Для справки: https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode#java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...