【问题标题】:program hangs before goToSleep();程序在 goToSleep() 之前挂起;
【发布时间】:2011-09-26 05:01:10
【问题描述】:

您好,我有这个程序,它使用语音命令解锁手机。

在这个 VoiceRecog 活动中,当我检测到命令错误时,它会调用 goToSleep(1000);锁定设备。

但是,程序会在进入睡眠状态之前挂起。可能是什么问题呢?我应该在方法中为 int 值添加什么?

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {

       PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

       if(command ==right)
           ....
       else
           pm.goToSleep(10);
}

我尝试过使用

DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

devicePolicyManager.lockNow();

但程序在锁定之前仍然挂起。

【问题讨论】:

    标签: android android-layout android-emulator android-widget android-manifest


    【解决方案1】:

    只有作为系统应用程序签名的应用程序才能调用 goToSleep(),而不是您的。至少现在,我没有看到任何强制设备休眠的好方法。

    【讨论】:

    • 因为我有 disableKeyguard();当我按下电源按钮时,会调用语音识别程序。用户会对手机说出正确的命令,所以如果听到错误的命令,我将不得不锁定手机。
    • 在 sdk 文档中,我看到一些关于调用 locknow() 的 cmets:“调用设备管理员必须已请求 USES_POLICY_FORCE_LOCK 才能调用此方法;如果没有,将引发安全异常. " "要控制这个策略,设备管理员必须在其元数据的 "uses-policies" 部分有一个 "force-lock" 标签。 " 这就是你有这样一个问题的原因吗?
    • 我已经安装了一个应用小部件来轻松锁定我的手机,并且这个应用需要adimn功能。所以,我确信DevicePolicyManager可以锁定手机。不过,说到“关屏”,我就没有什么好主意了。
    • 您好,感谢您的回复 :) 所以如果我在清单文件中声明USES_POLICY_FORCE_LOCK,我不会在手机锁定之前收到错误消息?
    • 试一试。我是android的新手。请让我知道它是否有效。
    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多