2014-02-13 36 views
0

我在錄製應用程序上工作。當屏幕關閉時顯示對話框

我有一個情況,當the internal storage runs below 10 MB,然後我停止錄音和show a dialog給用戶。

問題是當用戶擁有100 MB的空閒空間,開始錄製,鎖定手機並在後臺錄製時。

經過一段時間存儲器運行在10 MB以下時,錄製停止,但沒有向用戶顯示對話框BECAUSE SCREEN IS OFF

如何在用戶解鎖手機並進入應用程序後向用戶顯示對話框?我也會顯示通知,但是我的應用程序的目標是android 2.3+,並且沒有2.3的通知。

回答

3

你需要使用PowerManager給出的應用程序上下文來喚醒屏幕:

 PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
     WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
     wakeLock.acquire(); 

要解除鎖定您使用KeyguardManager

 KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
     KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
     keyguardLock.disableKeyguard(); 

在您的清單,提出:

 < uses-permission android:name="android.permission.WAKE_LOCK" /> 
    < uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 

請參閱PowerManager和Android開發人員資源中的。

編輯1:

有一些WindowManager.LayoutParam標誌被所有相關的,你可以嘗試,但他們只在全屏環境下工作,最後一個可能是你最好的選擇:

+0

有沒有其他方法可以做到這一點?我不想在那個時刻展現對話。我有通知。問題是由於<10 MB,錄製會自動停止,用戶進入應用程序思維仍在錄製,然後他必須看到對話框說:「嘿,你的手機已經不在內存中,錄製已停止」。現在當他進入應用程序時沒有顯示對話框。 –

+0

那麼你想要什麼?你需要1)解鎖手機2)喚醒屏幕,然後我需要澄清:3)當應用程序打開時顯示一個對話框?爲什麼他在打開應用程序時不顯示對話框? ...你可以嘗試的另一件事是一些標誌,但它們只能用於全屏活動。我會編輯我的答案 – SQLiteNoob

相關問題