android 仿微信来电_Android仿微信QQ等实现锁屏消息提醒

本文介绍如何在Android中创建一个活动(MessageActivity),该活动能够仿照微信来电,在锁屏状态下显示消息通知,并实现点击进入详细内容的功能。通过设置WindowManager参数,实现在锁屏时显示、解锁屏幕、保持屏幕常亮以及打开屏幕。此外,还提供了关闭消息和跳转到详情页面的交互操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

importandroid.app.KeyguardManager;importandroid.app.WallpaperManager;importandroid.content.Context;importandroid.content.Intent;importandroid.graphics.drawable.Drawable;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.util.Log;importandroid.view.View;importandroid.view.Window;importandroid.view.WindowManager;importcom.demo.lockscreenmsgdemo.R;/*** 锁屏消息内容的activity*/

public class MessageActivity extendsAppCompatActivity {privateContext mContext;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

Log.i("tag", "onCreate:启动了消息内容的activity ");//四个标志位顾名思义,分别是锁屏状态下显示,解锁,保持屏幕长亮,打开屏幕。这样当Activity启动的时候,它会解锁并亮屏显示。

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); //打开屏幕//使用手机的背景

Drawable wallPaper = WallpaperManager.getInstance(this).getDrawable();

win.setBackgroundDrawable(wallPaper);

setContentView(R.layout.activity_message);

mContext= this;

initView();

}

@Overrideprotected voidonNewIntent(Intent intent) {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();//任务结束后释放//}

}private voidinitView() {

findViewById(R.id.message_layout).setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View view) {//先解锁系统自带锁屏服务,放在锁屏界面里面

KeyguardManager keyguardManager =(KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);

keyguardManager.newKeyguardLock("").disableKeyguard(); //解锁//点击进入消息对应的页面

mContext.startActivity(new Intent(mContext, DetailsActivity.class));

finish();

}

});

findViewById(R.id.close_iv).setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View view) {

finish();

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值