如何以编程方式锁定/解锁手机:Android

San*_*shi 8 android keyguard

在我的应用程序中,我需要锁定和解锁手机.我搜索了它,我找到了许多答案,我尝试了它们,但没有人工作.

onCreate()在我完成活动时,我需要再次打开手机并再次锁定手机.

你们知道做同样的方法吗?

谢谢朋友.

编辑:

我尝试过的一些链接是:

如何在屏幕锁定时显示活动?

Android屏幕锁定/解锁以编程方式

https://groups.google.com/forum/#!topic/android-developers/BOLjJTMO4zE

在我的应用程序中,我正在使用AlarmManager然后启用手机锁来安排任务.我的活动是在预定时间开始,但它没有解锁我的手机.当我解锁我的手机时,手动运行活动就出现了

小智 11

BroadcastReceiver设置wakelock和中activity

做这个:

Window window = this.getWindow();
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

导入以下

import android.view.Window;
import android.view.WindowManager.LayoutParams;
Run Code Online (Sandbox Code Playgroud)

它解决了我的问题,评价它:-)))


hid*_*s02 6

由于API 27,FLAG_SHOW_WHEN_LOCKEDFLAG_TURN_SCREEN_ON被弃用。而是在Manifest

<activity
    android:name=".MyActivity"
    android:turnScreenOn="true"
    android:showWhenLocked="true"/>
Run Code Online (Sandbox Code Playgroud)

或者,对于一般用途,在您的活动中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setTurnScreenOn(true);
        setShowWhenLocked(true);
    } else {
        Window window = getWindow();
        window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    }
}
Run Code Online (Sandbox Code Playgroud)