2013-09-24 4 views
1

Я пишу приложение, которое получает сообщения в фоновом режиме с помощью службы. Я хотел бы отобразить экран, похожий на собственный экран входящих вызовов (экран, который отображается выше всего остального, даже если устройство заблокировано). В настоящее время приложение просто управляет виджетами, которые находятся на экране блокировки и на главном экране, но при этом более привлекательная работа будет хорошей.Отображение экрана, такого как собственный экран входящих вызовов в Android

Я уже пробовал операцию диалога. Это похоже на то, что мне нужно, но оно не отображается на экране блокировки и из-за того, что я запускаю его из справочной службы, показывает основное его действие.

ответ

3

Я нашел решение для этого для любого, кто может наткнуться на это в будущем. Создайте действие для отображения экрана, а затем добавьте в класс активности следующее:

public class DialogActivity extends Activity 
{ 
    /** 
    * Tag for this class to be used when logging. 
    */ 
    public static final String TAG = "DialogActivity"; 

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

     // Set the window to always display on the forefront and to be opened when locked 
     Window oWindow = this.getWindow(); 

     oWindow.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON 
         + WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
         + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     // Set our layout 
     this.setContentView(R.layout.activity_dialog); 

Это, как представляется, имеет желаемый эффект. Настройка темы действия в полноэкранном режиме также помогает создать еще более похожий опыт для звонка.

Смежные вопросы