
我在活动中使用Keyguard Manager来解锁设备,但是它的行为很奇怪.我用两种设备对其进行了测试,在Nexus上运行正常,但在三星galaxy S上则无法运行.
我的代码是:
PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FulL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP),"mini");wakeLock.acquire();KeyguardManager keyguardManager = (KeyguardManager) ctx. getSystemService(Context.KEyguard_SERVICE);keyguardlock keyguardlock = keyguardManager.newkeyguardlock("mini");keyguardlock.disableKeyguard();谁能帮忙?
解决方法:
我找到了这个解决方案,其中mContext是您活动的上下文,我在活动之外使用它.
if (androID.os.Build.VERSION.SDK_INT <= androID.os.Build.VERSION_CODES.FROYO) { // only for gingerbread and newer versions ((Activity) mContext).getwindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); ((Activity) mContext).getwindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); ((Activity) mContext).getwindow().addFlags(WindowManager.LayoutParams.FLAG_disMISS_KEyguard); KeyguardManager manager (KeyguardManager) mContext.getSystemService(Context.KEyguard_SERVICE); keyguardlock lock = manager.newkeyguardlock("abc"); lock.disableKeyguard(); } else { KeyguardManager km = (KeyguardManager) mContext.getSystemService(Context.KEyguard_SERVICE); keyguardlock keyguardlock = km.newkeyguardlock("TAG"); ((Activity) mContext).getwindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); ((Activity) mContext).getwindow().addFlags(WindowManager.LayoutParams.FLAG_disMISS_KEyguard); keyguardlock.disableKeyguard(); PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); WakeLock wakeLock = pm.newWakeLock(PowerManager.FulL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE | PowerManager.SCREEN_BRIGHT _WAKE_LOCK, "MyWakeLock"); wakeLock.acquire(); } 总结 以上是内存溢出为你收集整理的android-Keyguard Manager无法正常工作全部内容,希望文章能够帮你解决android-Keyguard Manager无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)