![](/img/trans.png)
[英]How to whitelist installer package during kiosk mode/ lock task mode?
[英]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.