您的位置:首页 > 移动开发 > Android开发

Android锁屏问题自我总结(海纳百川,博采众长)

2014-07-10 17:40 381 查看
本人做了一段时间的锁屏,就个别问题做下总结:

Home键问题:本人也层搜索过,总结起来就如同这位仁兄写的一样,在此引用一下

点击打开链接,里面4.0的方法本人尝试过多个测试手机也没能成功,可能只针对部分机型有效(个人猜测)。

解决办法:
View mView = LayoutInflater.from(this).inflate(R.layout.main, null);
WindowManager mWindow = (WindowManager) this.getSystemService("window");

WindowManager.LayoutParams mWindowManagerParams = new WindowManager.LayoutParams();
mWindowManagerParams.type = WindowManager.LayoutParams.TYPE_PHONE;//电话窗口。它置于所有应用程序之上,状态栏之下。
//		mWindowManagerParams.type = LayoutParams.TYPE_SYSTEM_ERROR ;//系统内部错误提示,显示于所有内容之上。
mWindowManagerParams.format = -3;
mWindowManagerParams.width = -1;
mWindowManagerParams.height = -1;
mWindowManagerParams.softInputMode = 3;
mWindowManagerParams.x = 0;
mWindowManagerParams.y = 0;
mWindowManagerParams.gravity = 51;
mWindowManagerParams.alpha = 1.0F;
int flags = /*WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| */WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
| WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
mWindowManagerParams.flags = flags;
mWindow.addView(mView, mWindowManagerParams);
此方法避免了home键的问题,锁屏上面显示的内容都在mView里面。。。。。。

之后还做过一款类似与酷狗播放器的音乐锁屏,要求音乐锁屏要显示在系统锁屏(除滑动解锁的密码解锁,图案解锁等方式)之上,经过尝试,最后将WindowManager.LayoutParams.type改成了TYPE_SYSTEM_ERROR,如上面代码注释所示,这样自定义锁屏显示在了所有也没之上。

本人第一次写博客,写的不对的地方请大家多加指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: