桃李春風一杯酒 江湖夜雨十年燈
阿新 • • 發佈:2018-12-20
##關於Toast鎖屏不顯示 最近在做優化的時候碰到一個Toast不顯示的問題:
設定的安全模組添加了面部解鎖,使用人臉進行解鎖時會佔用攝像頭資源,這樣在鎖屏條件下安全進相機(SecureCamera)概率性出錯,提醒資源被佔用問題。
暫時沒有很好的解決辦法,目前在後檯面部解鎖啟用時禁止Secure模式進相機,通過接收人臉解鎖廣播,這個不難做到。客戶要求在啟用人臉解鎖時,滑動無法進入相機時給個提示Toast。接下來,把這個Toast加到SystemUI模組,結果無論怎麼修改,提示都不出現,且context以及message都沒有問題,一時犯了難。
似乎一直忽略的問題,這時在顯示Toast的時候,系統並未解鎖,是不是Toast在未解鎖上,直接用系統makeText並不能顯示,果然經過多方查詢驗證,改用以下方式,在systemui lunchCamera的地方加提示,成功提示。
public static Toast makeTextClock(Context context, CharSequence text, int duration) { Toast toast = Toast.makeText(context, text, duration); toast.getWindowParams().type =WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL; toast.getWindowParams().privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS; toast.getWindowParams().flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; return toast; }