android锁屏状态下, 消息推送 唤醒屏幕,并跳转到指定页面

最近在做一个项目,有个功能,就和QQ电话差不多,我这边手机锁屏状态,当QQ电话过来时,立刻唤醒屏幕,并显示QQ来电界面,我的是当设备端有事件发生时通知app端弹出界面,实时显示设备端信息。

 

在这重点说下当处于锁屏状态下,新消息唤醒屏幕,并显示指定Activity 界面,因为是新消息到来直接进入某个界面 所以没通知栏的标题啊,内容啊,图标啊,都不需要,直接在监测到新消息状态处用Intent  实现 跳转 到 指定界面 ,

 

messageNotification = new  Notification.Builder(getApplication());
messageNotification.setDefaults(Notification.DEFAULT_ALL);
messageNotification.setAutoCancel(true);
noti  = messageNotification.build();
messageNotificatioManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
cancelNotification();
messageNotificatioManager.notify(messageNotificationID,noti);

Intent intent = new Intent();
intent.setClass(getApplicationContext(),跳转指定Activity的.class);
intent.putExtra();
intent.putExtra();  // 需要时 传入相应的参数
intent.putExtra();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intent);

在指定的Activity 的Oncreate()方法处 加入

 

    @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      getWindow().addFlags(

            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|

            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|

            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

      setContentView(R.layout.******);

 这样 就可实现  和 QQ 电话 一样 锁屏状态下   直接 弹出 指定界面的 信息

 

 

2018年12月5日更新:

一直忙于项目,这个仿QQ电话项目是2016年的 好久了,  看评论有人说用不了,刚重新写了demo运行下没问题,

将demo 发出来,供大家参考吧, demo 流程是 点击按钮后延时10s发送广播 ,此时熄灭屏幕,10s后唤醒进入指定界面播放声音(demo用的系统铃声) 大家可以下载看下    demo已适配android  8.0   (唤醒屏幕的前提是手机没有密码或指纹设置)

至于留言说 没唤醒的请检查唤醒屏幕时activity 是否设置窗口管理:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

setContentView(R.layout.***); 前生效

 

链接里面有 一个apk     和  demo源码  

链接:https://pan.baidu.com/s/1xX4BtsPeeEb4NQWHMW1XaA
提取码:j20t
 

有问题留言!ok 下班  ....

你可能感兴趣的:(android)