2010-05-14 64 views
19

仿真器启动后,锁定屏幕出现在主屏幕上。我想在主屏幕上禁用锁定,以便下次启动我的模拟器时锁定屏幕不会出现。任何人都可以为此提出最佳解决方案吗?如何删除仿真器启动至Android 2.1主屏幕后出现的锁定屏幕

+0

乘坐看看我的回答[这篇文章] [1]。 [1]:http://stackoverflow.com/questions/4545079/lock-the-android-device-programatically/10535284#10535284 – VidaLux 2012-05-10 13:48:19

+0

看看我回答这个帖子...它的工作对于我来说足够了! [回答](http://stackoverflow.com/questions/4545079/lock-the-android-device-programatically/10535284#10535284) – VidaLux 2012-05-10 13:50:00

回答

1

AFAIK,你不能创建自己的主屏幕。

+0

我已经创建了我自己的主屏幕。在Linux模拟器上检查主屏幕时,Emulator直接启动到我的主屏幕,而不显示任何LOCK。但是,当我使用Windows模拟器的ramdisk.img,system.img,userdata.img文件。为我的主屏幕锁定apears。请建议如何在这种情况下删除锁? – user341053 2010-05-14 11:56:29

+0

我还没有找到设备中的任何设置来关闭锁! – 2010-05-14 15:35:32

+0

我不想通过设备设置更改LOCK ..我想以编程方式执行此操作,以便下次启动我的模拟器或设备时不锁定屏幕apears。 – user341053 2010-05-17 05:37:25

1

锁定屏幕由服务启动。服务为WindowManagerService。在服务中,代码“wm.systemReady()”启动Lock sceen。

1

从这个answer

  1. 如果你是开发者或有下试访问 应用程序的代码,那么最好和实现 这个最简单的方法是使用: http://developer.android.com/guide/topics/testing/activity_testing.html

    KeyguardLock keyguardLock = ((KeyguardManager)keyguardService).newKeyguardLock(TAG); 
    
    if (enable) { 
        keyguardLock.reenableKeyguard(); 
    } else { 
        keyguardLock.disableKeyguard(); 
    } 
        return true; 
    } 
    

    在我看来,这是一个讨厌的解决方案,因为它要求您在应用程序中包含 额外权限 - 实际上并不需要 应用程序。

    作为[OP]提到,你应该删除它,但人们忘记了:我已经看到一个 在市场上发布的几个应用程序仍然包含此权限 ,当它真的应该被删除。

    如果你能自动只包含此权限的测试版本, 或做一个发布版本时自动删除的权限,然后 罚款。

  2. 第二个最好的方法是使用adb shell命令在模拟器的启动 解锁它。实际的代码将根据您用来调用这些命令的方法而有所不同。这当然具有 限制,只有在模拟器启动此命令后才会执行任何操作,它只能在第一次启动 模拟器时运行。

    您可以随时运行“adb shell”命令。在第一个 启动时,它会打开Android菜单,这应该是无害的。在每次后续启动时,它将按下菜单,这将根据需要解锁 屏幕。

  3. 第三种方法是telnet进入模拟器,然后使用EV_KEY至 将其解锁。

    远程登录本地主机5554 事件发送EV_KEY:KEY_MENU:1 EV_KEY:KEY_MENU:0 退出

    你可以把它放进一个bat或shell文件,并从测试调用它 解锁主屏幕。这又有一个限制,即只能在第一次启动时解锁,并且不能用于在首次启动后解锁主页 屏幕。

    这似乎倒退了。首次启动 模拟器时,主屏幕未锁定。

    在任何情况下,我都不会推荐这样做,因为我们上面有更多的可靠的“adb shell”解决方案 。这也应该在真正的 设备上工作。

  4. 第四种选择是使用maven来解锁它。 http://issues.hudson-ci.org/browse/HUDSON-7185 这对于CI目的非常有用,但由于无法从日食中解锁屏幕而受到限制 。因此,如果您要在 Eclipse中编写测试,则必须使用命令提示符运行测试,如果您需要解锁屏幕 。

    澄清:该错误报告是关于Jenkins/Hudson的 而不是Maven的Android模拟器插件。这里提到的Maven解决方案只使用上面的“telnet”选项。

  5. 最后,还有一种选择是使用Android模拟器快照。 在Android SDK Tools v9中引入的仿真器现在支持保存模拟器的当前状态(类似于其他虚拟化产品 ,如VMware)。

    所以你可以启动一次仿真器,这样它就变成了解锁,然后 关闭它。启动模拟器随后将立即加载 一个干净的仿真器解锁屏幕(只要你不保存在关机 模拟器状态(即“--no快照保存”选项)。

    BTW,此快照功能将在Android模拟器插件的詹金斯/哈德森 在下一个版本中的自动化和收录。

9

了Android OS 4.2.2的最新版本有办法通过模拟器的设置将其删除。只需进入:安全>>屏幕锁定,然后选择“无”。确保您将仿真器设置保存为快照,以便您不必继续这些相同的步骤。

+3

这应该是我接受的答案,我认为 – 2013-11-22 13:44:01

+0

如果您使用快照,执行设置是多余的,因为您可以在解锁后保存快照。 – 2014-01-20 21:10:32

-1

enter image description here

  1. 安迪(右键) - 设置 - VMI导入工具
  2. 安迪(右键) - 安迪VM启动 - 删除此安迪 - 新安迪 - 启动