/res \ frameworks/base/packages/Keyguard/res_ext \ $(LOCAL_PATH)/res \ $(LOCAL_PATH)/res_ext...发现其中的资源文件来自Keyguard。...那么我们要在Keyguard里做修改,编译SystemUI。...1.frameworks/base/packages/Keyguard/res/layout/keyguard_status_view.xml这是锁屏上的时钟界面 Keyguard. --> keyguard.KeyguardStatusView
在 ANDROID系统中keyguard的功能实现采用了中介者模式,用来中介keyguard相关的请求,包括查询keyguard的状态,影响keyguard应当显示和复位的电源管理事件,以及当keyguard...显示时对窗口管理的通知事件和来自keyguard视图本身的关于keyguard是否成功unlocked的事件等。...事件相关的功能等 ,而KeyguardViewManager、KeyguardHostView、KeyguardUpdateMonitor类通过相关回调向KeyguardViewMediator传送Keyguard...视图本身和keyguard有关状态更新方面的事件, 另外KeyguardService服务也是通过KeyguardViewMediator查询keyguard的状态 并通过IKeyguardService...接口对外提供keyguard的状态信息。
在安卓如下目录下找到KeyguardUpdateMonitor.java文件做如下修改 /frameworks/base/packages/SystemUI/src/com/android/keyguard.../KeyguardUpdateMonitor.java diff --git a/frameworks/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java...b/frameworks/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index cd23c97c71.....9aca9e13af 100644 --- a/frameworks/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java...+++ b/frameworks/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -423,7
/** * Mediates requests related to the keyguard....the keyguard is showing, and events from the keyguard view itself * stating that the keyguard was succesfully...* * Events from the keyguard view: * - user succesfully unlocked keyguard -> hide keyguard view, and...When * false, this will override all other conditions for turning on the keyguard....ii、密码验证对应的布局文件keyguard_password_view.xml,如果我们希望在布局上添加内容,就可以在这个布局文件上添加了。
else{ //页面悬浮于锁屏之上 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD...WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); //亮屏 KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE
KeyguardManager keyguardManager = (KeyguardManager) MyApplication.getContext() .getSystemService(KEYGUARD_SERVICE...name="android.permission.WAKE_LOCK" /> KEYGUARD
(MSG_KEYGUARD_DRAWN_TIMEOUT, 1000); mKeyguardDelegate.onScreenTurningOn(mKeyguardDrawnCallback...= null) { mHandler.removeMessages(MSG_KEYGUARD_DRAWN_TIMEOUT); }...= null || isForceHiding || keyguard)) { win.mWinAnimator.mDrawState = DRAW_PENDING...mWaitingForDrawn.add(win); // No need to wait for the windows below Keyguard...mScreenOnListener = null; mScreenOnFully = true; // Remember the first time we draw the keyguard
可以看出,锁屏界面属于状态栏,属于SystemUi的一部分,类似于状态栏下拉之后的界面,而Android4.4.2是属于keyguard锁屏界 面。...Android4.4.2的锁屏界面隶属于keyguard,与statusBar没有关系,就是一个界面。...; case PIN: return R.layout.keyguard_pin_view; case Password: return R.layout.keyguard_password_view...; case SimPin: return R.layout.keyguard_sim_pin_view; case SimPuk: return R.layout.keyguard_sim_puk_view.../src/com/android/keyguard/KeyguardSecurityMode.java public enum SecurityMode { Invalid, /
让该window后所有的东西都成暗淡(dim) int FLAG_DISMISS_KEYGUARD Window flag: when set the window will cause the keyguard...to be dismissed, only if it is not a secure lock keyguard. int FLAG_DITHER Window flag: turn on dithering...内部输入法对话框,显示于当前输入法窗口之上 int TYPE_KEYGUARD Window type: keyguard window....锁屏窗口 int TYPE_KEYGUARD_DIALOG Window type: dialogs that the keyguard shows 锁屏时显示的对话框 int TYPE_PHONE Window...int TYPE_PRIORITY_PHONE Window type: priority phone UI, which needs to be displayed even if the keyguard
method 锁屏全透明步骤: 1,反编译android.policy.jar android.policy\Data\smali\com\android\internal\policy\impl\keyguard...final BACKGROUND_COLOR:I = 0x00000000 2,android.policy\Data\smali\com\android\internal\policy\impl\keyguard
KeyguardLock mKeyguardLock=null; 复制代码 关闭系统屏保: mKeyguardManager= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE...之后我们需要再配置文件中申请权限: KEYGUARD"></uses-permission
另外Keyguard(锁屏界面)也是属于SystemUI的一部分。并且在Android8.0代码中,Keyguard模块已经从外部被合并到SystemUI源码目录下。 ?...StatusBar:通知消息提示和状态展现 NavigationBar:返回,HOME,Recent KeyGuard:锁屏模块可以看做单独的应用,提供基本的手机个人隐私保护 Recents:近期应用管理
public static final int TYPE_KEYGUARD = FIRST_SYSTEM_WINDOW +4; 信息窗口。...public static final int TYPE_KEYGUARD_DIALOG = FIRST_SYSTEM_WINDOW +9; 系统内部错误提示,显示于所有内容之上。...WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD...intent.getAction()); KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE...wl.acquire(); wl.release(); } 最后,是添加如下权限 KEYGUARD
整个布局,NotificationPanelView,status_bar_expanded.xml 1、KeyguardStatusBarView,keyguard_status_bar.xml ,状态栏...2、KeyguardStatusView,keyguard_status_view.xml ,时间和日期 3、NotificationStackScrollLayout,@+id/notification_stack_scroller...,通知 4、KeyguardBottomAreaView,keyguard_bottom_area.xml,底部解锁 结语 好了,这篇结束了,主要学习 StatusBar 相关布局在哪里写了,先有个直观认识
); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); FLAG_DISMISS_KEYGUARD用于去掉系统锁屏页...当然,不要忘记在Manifest中加入适当的权限: KEYGUARD"/> 3....但是细心的读者会发现这种解法在逻辑上还存在问题,因为在用户没有设置锁屏密码的情况下,前文自定义锁屏页在onCreate()时设置的FLAG_DISMISS_KEYGUARD标志位能够轻易解锁系统的锁屏页...而如果设置了锁屏密码,FLAG_DISMISS_KEYGUARD必然无法解锁系统锁屏,到达不了上述代码块,也不会finish。这样就避免了自定义锁屏页刚创建出来就将自己finish掉的困境。...另一方面,其他非FLAG_DISMISS_KEYGUARD方式触发的解锁,比如指纹解锁,都会使Activity消失,满足了需求。 2.
0.2f window.attributes = params } private fun unlock() { (getSystemService("keyguard... 在AndroidManifest.xml中申请权限 KEYGUARD
wm dismiss-keyguard: dismiss the keyguard, prompting the user for auth if necessary.
public static final int TYPE_KEYGUARD = FIRST_SYSTEM_WINDOW +4; 信息窗口。用于显示toast。...public static final int TYPE_KEYGUARD_DIALOG = FIRST_SYSTEM_WINDOW +9; 系统内部错误提示,显示于所有内容之上。
CHANGE_WIFI_MULTICAST_STATE 改变WiFi多播状态,应该是控制手机热点(猜测) CHANGE_WIFI_STATE 控制WiFi开关,改变WiFi状态 DISABLE_KEYGUARD
com.android.systemui.util.NotificationChannels com.android.systemui.keyguard.KeyguardViewMediator...Android 10 这个类还是存在的) com.android.systemui.util.NotificationChannels 用来处理通知的逻辑 com.android.systemui.keyguard.KeyguardViewMediator
领取专属 10元无门槛券
手把手带您无忧上云