幾年前,我編寫了一款適用於Android 2的鬧鐘應用程序,現在我正在嘗試將其升級到Android 4。三星Galaxy S4。Android Galaxy S4 - 在鎖定屏幕上可見的活動
在Android 2上,如果手機正在睡眠,它會喚醒手機並在鎖定屏幕上顯示「暫停或關閉」屏幕。
在Android 4上,它會喚醒手機,但您必須解鎖它,然後打開通知區域,然後單擊警報通知,然後才能點擊「關閉」。
我一直用這個代碼做清醒:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
我已閱讀在這個問題上8點不同的計算器的問題。他們中的大多數都提供了上面的代碼,這些代碼幾年前在Android 2中工作,但在Android 4中無效。但是他們都沒有幫助我解決這個問題。這裏有問題,我閱讀和嘗試:
Android: remove or disable programmatically the Lock Screen on Samsung Galaxy S2 device
How do I create an Activity that is visible on top of the lock screen
How to start a dialog (like alarm dimiss /snooze) that can be clicked without unlocking the screen
Android activity over default lock screen
android device locked, yet want alarm to sound and dialog to appear
Android dialog over lock screen
Show dialog with touch events over lockscreen in Android 2.3
沒有人有可能導致此什麼了Android 4改變任何想法?
編輯:這是我看到的一個最簡單的例子,它沒有出現「最小化」的報警對話框。它不會,因爲寫的,出現在鎖屏,但您可以修復與WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
它具有FragmentActivity和DialogFragment編寫的,但它仍然可以作爲一個活動。它使用一個AlertDialog.Builder來創建對話框,如果你嘗試使用XML佈局來實現,它將無法工作。爲什麼?
你已經在清單中設置了此權限? - ><使用權限android:name =「android.permission.DISABLE_KEYGUARD」/> – bofredo
是的,該權限一直設置,並用於Android 2上工作。 – howrad
我嘗試了一些新的東西。我將Screen Lock設爲無,但我仍然看到問題。爲了給臺式計算機打個比方,就像對話框開始「最小化」 - 在出現對話框之前,您必須點擊警報通知。手機打開時,會彈出對話框,但手機處於關閉狀態時,對話框將開始最小化。這在Android 2.3中不是問題。 – howrad