繁体   English   中英

KIOSK:活动转换同时保持锁定任务以避免“固定”“未固定”吐司

[英]KIOSK: Activity transition while keeping lock task to avoid “pinned” “unpinned” toasts

我正在为特定设备创建 KIOSK 应用程序。 应用程序是设备所有者。

虽然应用程序只有一个活动,但我在onResume()中调用startLockTask()解决了这个问题。

现在的问题是,我有多个活动,我想以活动 B“替换”活动 A 的方式从活动 A 过渡到活动 B,这意味着活动 A 应该死亡,而活动 B 应该启动。

我已经这样做了

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

我必须调用stopLockTask()否则它不会完成。

在活动 B onResume() ) 上调用startLockTask() ) 有效,但它很难看,因为会出现多条 toast 消息,上面写着“pinned”和“unpinned”。

有没有办法在不停止锁定任务的情况下杀死一个活动? 或者隐藏吐司消息?

将您的应用程序添加到锁定任务模式的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数组。

之后,它将不再使用屏幕固定来支持锁定任务模式。 这将防止任何 toast 出现并且用户无法逃脱。


供参考: https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode#java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM