【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;
        }
    }
}
时间: 2024-08-05 03:50:00

【Android N 7.1.1】 锁屏之上显示Toast的相关文章

锁屏上显示Activity

在Android中,有些比较强的提醒,需要用户紧急处理的内容.需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来.例如,来电界面和闹钟提醒界面.这是怎样实现的呢? 其实,实现起来非常简单.只要给Activity的Window添加如下属性即可: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowMa

[android] 手机卫士设备管理权限锁屏

设备管理员 Device Admin 获取DevicePolicyManager对象,通过getSystemService(DEVICE_POLICY_MANAGER),设备策略管理器 调用DevicePolicyManager对象的lockNow()方法,锁定,此时会报 安全异常 新建一个类MyAdmin继承系统的DeviceAdminReceiver,这个是广播接收者 清单文件进行注册 添加<receiver>节点,设置名称 设置权限 android:permission=”android

Android 禁止屏幕休眠和锁屏的方法

Introduction 常常我们开 发程序的时候我们不需要系统唤醒系统锁屏功能,比如我们在做xxxNowTV或XXX播放器这样的程序,用户有时候在看电视或视频的时候不希望系统的锁屏 功能启动,既不想锁频,然而系统却在我们看电视或者视频的时候出来个锁屏的界面进行锁频拉,我们还要想继续看的话还要去解锁,这样好麻烦,不是我们想要 的,那我们该怎么做呢,其实很简单,我这里只讲其中的两种 一 :我们只要在程序中用代码实现.代码如下: [java] view plaincopy //方法一 getWind

Android开机自动启动app 不锁屏

主要参考:http://life173.blog.51cto.com/2035365/543916/ 实现功能,开机后自动启动FirstActivity,并且不用解锁. 贴出源码: 主要是在配置文件中配置:   <receiver android:enabled="true" android:name=".BootUpReceiver"             android:permission="android.permission.RECEIV

Android Activity组件正常以及锁屏状态下的启动流程

前言: Activity是android的四大组件之一,它主要负责管理android应用程序的用户界面. 本文主要从framework的角度去分析activity的启动过程.activity的启动过程根据不同的情况会有一些差别,比如锁屏与非锁屏状态下的区别,activity依附的应用程序进程不存在与已经存在的区别等. 目录: 一.KK4.4从Launcher启动Activity的流程 二.应用内启动子Activity的流程 三.锁屏状态下Activity启动的流程 文章中含有大量的时序图,请直接

锁屏显示Activity

在Android中,有些比较强的提醒,需要用户紧急处理的内容.需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来.例如,来电界面和闹钟提醒界面.这是怎样实现的呢? 其实,实现起来非常简单.只要给Activity的Window添加如下属性即可: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowMa

Android下屏幕锁屏弹窗的正确姿势

最近在做一个关于屏幕锁屏悬浮窗的功能,于是在网上搜索了很多安卓屏幕锁屏的相关资料,鉴于网上的资料比较零碎,所以我在这里进行整理总结.本文将从以下两点对屏幕锁屏进行解析: 1. 如何监听系统屏幕锁屏 2. 如何在锁屏界面弹出悬浮窗 如何监听系统屏幕锁屏 经过总结,监听系统的锁屏可以通过以下两种方式: 1) 代码直接判定 2) 接收广播 1) 代码直接判定 代码判断方式,也有两种方法: a) 通过PowerManager的isScreenOn方法,代码如下: PowerManager pm = (P

Android Device Administration 设备管理器——一键锁屏的实现

Android Device Administration 设备管理器--锁屏的实现 最近研究了一下安全这一块的内容,当然,我是比较水的,所以也拿不出什么好知识点,但是有一些冷门的东西我还是可以聊聊的,就拿这个锁屏来说吧,我们现在市面上有一些一键锁屏的软件 我们可以看到,是数不胜数的,所以,其实他一开始使用的时候,都需要请求设备管理器 我们可以看到,只有当我们激活的时候,我们才可以使用它,那么,他到底是什么东西呢?其实,当我们激活之后,我们可以在我们手机的设置--安全--设备管理器里面看到他的所

QQ音乐/酷狗音乐锁屏控制实现原理

我实现的效果 混乱的锁屏控制 Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中最开始使用的是原生锁屏控制API, 说实话这个API不好用, 遇到了一些小坑, 最要命的是不同品牌的手机, 锁屏界面长的还不一样, 就连我自己都没见过原生4.0的锁屏控制界面是什么样的. 国内的手机厂