【Android N 7.1.1】 锁屏之上显示Toast
package com.android.systemuirom.keyguard; import android.content.Context; import android.view.Gravity; import android.view.WindowManager; import android.widget.Toast; public class KeyguardToast { private static KeyguardToast sInstance; private Toast mToast = null; public static KeyguardToast getInstance() { if (sInstance == null) { sInstance = new KeyguardToast(); } return sInstance; } private KeyguardToast() { // ignore } public Toast makeText(Context context, CharSequence text, int duration, boolean needOffsetPosition) { if (mToast != null) { mToast.cancel(); mToast = null; } mToast = Toast.makeText(context, text, duration); mToast.getWindowParams().type = WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL; mToast.getWindowParams().privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS; mToast.getWindowParams().flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; // Toast偏移位置 if (needOffsetPosition) { // set offset position mToast.setGravity(Gravity.CENTER, 0, -300); } return mToast; } public void cancelToast() { if (mToast != null) { mToast.cancel(); mToast = null; } } }