2 qq 35720183 qq_35720183 于 2017.01.15 10:37 提问

求教:Android锁屏弹出消息

正常推送消息已经完成。求教怎么弄锁屏之后推送。
去查了下很多说仿QQ那个,但是我弄了下是整个activity弹出。
我想弄成这样。图片说明
我用网上那个仿QQ弄了之后背景是桌面背景,锁屏都档住了。但是实际我的弹框高才50dp。
class LocalBroadcastReceiver extends BroadcastReceiver{

    @SuppressLint("NewApi")
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("LOG_TAG", intent.getAction());
        KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
        if (km.isKeyguardLocked()) {
            Intent alarmIntent = new Intent(context, AlarmActivity.class);
            alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(alarmIntent);
        }
    }
}

弹框activity
@Override
protected void onCreate(Bundle savedInstanceState) {
    final Window win = getWindow();
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED );//锁屏状态下显示

// | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁
// | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON //保持屏幕长亮
// | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); //打开屏幕
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);
}

@Override
protected void onNewIntent(Intent intent) {
    // TODO Auto-generated method stub
    super.onNewIntent(intent);
    PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);  
    if (!pm.isScreenOn()) {  
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |  
                PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");  
        wl.acquire();  
        wl.release();  
    }  
}

2个回答

z_x_1996
z_x_1996   2017.01.15 10:48

这个我也想知道。。。。

p0pp0p0
p0pp0p0   2017.01.16 17:11

如何想做到你截图的样子,只需要正常做一个通知栏Notification即可, 在 Android 5.0(API 级别 21)的手机上,你可以使用NotificationCompat构建通知栏,NotificationCompat#setVisibility来设定在锁屏上的显示方式(有三个值, 具体你可以看一下源码)。当然,向你说的在锁屏之上展示Activity也是可以的, 就是对用户来说太不友好

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
锁屏界面弹出视图实践---类似QQ锁屏界面弹出消息提示框
按一般思维理解手机锁屏了,手机窗体应该是处于非活动状态的。而视图的显示 必须依赖活动的窗体。然而在使用市面应用的时候,很多应用却都可以再锁屏界面上活动自己的视图------比如QQ在锁屏时有消息到达,可以弹出对话框;再比如音乐应用在锁屏界面上有自己的歌词等等。 一开始觉得应该就是一个dialog/或者window上再加一个view。 我的猜测是对得,系统中确实有一个属性setType(Wind
如何实现在锁屏上层显示Activity,如qq锁屏显示消息弹框
用过Android端手机QQ的用户都知道,qq锁屏显示消息弹框,类似这样通过获取最上层activity的命令adb shell dumpsys activity | findstr “mFocusedActivity” 可以得到qq消息弹框用的是activity,实现方式也比较简单, 一、新建弹框的activity,如LockActivity ;在LockActivity 中onCreate()
锁屏状态下弹出对话款,类似QQ、微信锁屏时候屏幕小窗口显示消息
原:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=540944&extra=page%3D1&page=1 不多说,上个简图, 首先创建一个广播接收消息, 这里面有判断是否锁屏, BroadcastReceiver broadcastReceiver = new BroadcastRecei
android开发技巧——仿新版QQ锁屏下弹窗
新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能。经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意。 下面的实现过程。 1,使用Activity,而不是View QQ的弹窗一开始我以为是悬浮View,用WindowManager去添加,但是无论如果就是不显示,后来换成Activity来实现,在锁屏状态下就能弹窗了。 2.Activity
Android锁屏状态下点亮屏幕并弹窗提醒
类似于手机锁屏状态下QQ来消息然后点亮屏幕并弹窗,如图。 相信QQ的这个功能大家都是很熟悉的了,下面就开始讲具体的实现步骤。一、新建一个Activity并在OnCreate中添加四个标识 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan
android模仿QQ锁屏状态弹框
进过查询很多博主的文章来总结一下在锁屏状态下弹出消息对话框的问题 一,首先创建Activity进行Activity设置 public class Messagedialog extends Activity{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat
Android仿qq实现锁屏消息提醒
效果图 适用应用场景适用应用场景:应用没有完全退出的情况下在后台运行时,如果用户已经关闭了手机屏幕,如果我们的APP收到推送消息,则打开手机屏幕,弹框显示消息的方式来提醒用户。实现思路在收到自己服务器的推送消息时,发送一条广播,在接收到指定广播之后在广播的onReceive()中判断当前屏幕是否处于关闭状态,如果处于关闭状态,则显示这个弹窗消息,反之,则不需要显示实现步骤1.Service中发送广
Android 锁屏界面弹出dialog
前述: 最近公司有个需求,车载项目有个毁密功能,当我们按下毁密键时,会弹出dialog提示框,倒计时5秒后,自动销毁秘钥,今天就来讲讲具体怎么实现。 效果: 思路: 1.物理键实现键值上报 这里因为涉及到底层及驱动比较多,本人不是很懂,是公司同事实现的,我主要是判断当我按下毁密键时,有key值上报上来就可以了。
android屏幕监听,手机是否处于锁屏状态,在锁屏之上弹出Toast.makeText消息
手机是否处于锁屏状态: import android.app.KeyguardManager; KeyguardManager mKeyguardManager = (KeyguardManager)context.getSystemService(context.KEYGUARD_SERVICE); if (mKeyguardManager.inKeyguardRestrict
Android锁屏通知(activity实现)类似新版qq的锁屏消息提示
效果图: 1、在接收消息广播的onReceive里,跳转到你要显示的界面。如: Intent intent = new Intent(arg0,MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); arg0.startActivity(intent); 2、在该ac