2014-03-05 110 views
0

如何在活動或服務中調用android的默認LockScreen?如何調用android的默認LockScreen?

我創建的Android應用程序有什麼就像一個Optimus G2的敲門功能。 但我有一些問題。 我的動態有OnStop()OnDestroy()功能,我不會叫它默認LockScreen或睡眠和喚醒。 首先,我嘗試PowerManager.gotoSleep(),但它是Android系統API。解決方案是DevicePolicyManager,但我不會使用它。

回答

1

看一看進入設備管理API:http://developer.android.com/guide/topics/admin/device-admin.html#top

當管理員,您可以使用設備策略管理器和lockNow()鎖屏:http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#lockNow%28%29

要解鎖,您必須使用窗口管理器來給當前窗口添加一個標誌。

WindowManager windowManager = Context.getSystemService(Context.WINDOW_SERVICE); 
Window window = getWindow(); 
window.addFlags(windowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 

要開啓屏幕:

PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
wakeLock = powerManagernewWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "wakeLock"); 
wakeLock.acquire(); 

不要忘了在manifest資源配置文件的WAKE_LOCK權限。

+0

我嘗試使用設備管理api,所以我睡覺我的手機。 但我不知道我的手機上的屏幕如何。 你知道嗎? – Amadas

+0

從設備策略管理器中調用「lockNow()」應該是個訣竅。 – randomizer

+0

我不明白你的評論。我稱之爲「lockNow()」,手機屏幕關閉並鎖定。但我不知道如何自動屏幕打開。我設置了DevicePolicyManager.setMaximumTimeToLock(ComponentName,msTime),但它不起作用。我有些錯誤。 – Amadas