Android - Activation of the system key lock (aka lock screen)

前端 未结 5 2104
借酒劲吻你
借酒劲吻你 2020-12-31 12:33

I have to activate android\'s system key lock (the one you get when you press the power off/hang up button). See here:

相关标签:
5条回答
  • 2020-12-31 12:57

    Looks like the screen lock function is performed using the method:

    public void goToSleep(long time)
    

    method in PowerManager.java. It's possible to get a reference to it in this fashion:

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

    However this requires the permission

    android.permission.DEVICE_POWER
    

    which is a level 2 permission available to the system only.

    So looks like this isn't doable. This is for version 1.1 only, I don't know for 1.5.

    0 讨论(0)
  • 2020-12-31 13:04

    Digging through the Android source found WindowManagerService which seems to have a public method (startAppFreezingScreenLocked) for activating this. This may be a good place to start looking for your answer, as unfortunately it doesn't seem as though you can directly get a WindowManagerService object.

    0 讨论(0)
  • 2020-12-31 13:17

    What you're looking for is the reenableKeyguard() method in KeyguardManager.KeyguardLock my friend !

    0 讨论(0)
  • 2020-12-31 13:18

    There's a pretty good example here:

    http://www.anddev.org/throwing-simulating_keystrokes_programatically-t717.html

    It looks like you can programmatically cause any keystroke to be sent to the system. It sounds like the keycode you're looking for is the KEYCODE_ENDCALL, but if that doesn't work there are plenty of other codes to try here:

    http://developer.android.com/reference/android/view/KeyEvent.html

    I don't know if there's any API call to cause the lock to occur, but this seems like a pretty sturdy workaround until you find a better solution.

    0 讨论(0)
  • 2020-12-31 13:21

    I have been searching for an answer to the exact same question for a while. Apparently, after 2.0 onwards the device manager privileges for the app level were removed. But with Froyo - 2.2 the device policy manager is revealed granting us developers a multitude of administrative level controls.

    http://developer.android.com/guide/topics/admin/device-admin.html

    0 讨论(0)
提交回复
热议问题