2011-07-14 111 views
2

我有一些意圖。當意圖觸發時,我想發送一個類似AlertBox的彈出通知,並打開屏幕讓用戶立即看到通知(我的意思是沒有顯示鎖屏)。Android:打開屏幕並通知用戶

如果你已經使用,例如,HandcentSMS那麼你明白我的意思(如彈出式通知時接受的消息)

如何組織的?任何代碼示例?我必須使用什麼樣的權限?

預先感謝您。

回答

0

也許KeyguardLock會做你想要什麼:彈出您的通知,然後調用disableKeyguard,那麼當用戶完成重新啓用或之後超時。

安全方面,這是有點冒險,但你去。

+0

可能有人告訴我如何實現這個棘手的事情?我只是想在某個特定時間點顯示一些警報框作爲通知。在鎖定屏幕上。 –

7

結帳PowerManager

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); 
wl.acquire(); 
//Do whatever you need right here 
wl.release(); 
+0

我已經試過這個。我的屏幕被喚醒,但我鎖定屏幕而不是我的AlertBox(或我的活動..或只是我的東西)。我不想鎖定屏幕。我想要顯示一個活動! – Ksice

+5

我很肯定你必須展示一個鎖,因爲這是鎖的整個點。如果用戶無人看管或丟失了手機,並且您的應用程序無鎖則開啓屏幕?那麼有人可能會使用已保存的信用卡信息或登錄所有者的賬戶。 –

+0

這是不適用於Firebase服務頁面 –

4

您的活動應具有的onCreate下面的代碼()實現:

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

     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| 
       WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| 
       WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

     setContentView(R.layout.myLayout); 

     // rest of initialization 
} 

您使用意圖調用活動。這裏是一個例子:

Intent startIntent = new Intent(context, MyActivity.class); 

startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

context.startActivity(startIntent);