簡體   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