栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android灭屏、锁屏状态下如何点亮弹出界面

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android灭屏、锁屏状态下如何点亮弹出界面

功能需求:如微信视频通话一样,在锁屏、灭屏状态下点亮屏幕,弹出界面

1:下列代码在服务和活动中都可以使用,只能点亮屏幕,部分没有密码的手机可以直接打开锁屏

```java
    private static PowerManager mPowerManager;
    private static PowerManager.WakeLock mWakeLock;
    
 //点亮屏幕
    @SuppressLint("InvalidWakeLockTag")
    private void wakeLock(){
        Log.i(TAG, "wakeLock:点亮屏幕30秒");
        //亮屏逻辑代码
        if (mPowerManager == null) {
            mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        }
        if (mWakeLock == null) {
            mWakeLock = mPowerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG");
        }
        boolean screenOn = mPowerManager.isScreenOn();
        if (!screenOn) {
            //屏幕会持续点亮
            mWakeLock.acquire(30*1000L );
            //释放锁,以便10分钟后熄屏
            mWakeLock.release();
        }

    }
2:光点亮屏幕,不弹出界面也无法实现需求,可以在活动中onCreate加入以下代码(只能在活动中,无法在服务中):

```java
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //锁屏显⽰
                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON //保持屏幕长亮
                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); //打开屏幕
 

3:弹出界面只能在活动中,但是一般后台运行都是在service中的,这样就可能需要在service中启动Activity:

Intent dialogIntent = new Intent(getApplication(), Activity.class);
                dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               startActivity(dialogIntent);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号