Android: включите экран и уведомите пользователя - PullRequest
3 голосов
/ 14 июля 2011

У меня есть намерение. Когда срабатывает намерение, я хочу отправить всплывающее уведомление, например, AlertBox, и включить экран, чтобы позволить пользователю немедленно увидеть уведомление (я имею в виду, не показывая экран блокировки).

Если вы использовали, например, HandcentSMS, то вы понимаете, что я имею в виду (например, всплывающее уведомление при принятии сообщения)

Как это организовать? Есть примеры кода? Какие разрешения я должен использовать?

Заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 14 июля 2011

Оформить 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(); 
4 голосов
/ 14 марта 2012

Ваша деятельность должна иметь следующий код в реализации 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);
0 голосов
/ 15 июля 2011

Возможно KeyguardLock сделает то, что вы хотите: откройте ваше уведомление и затем наберите disableKeyguard, а затем снова включите, когда пользователь завершит работу или по истечении времени ожидания.

С точки зрения безопасности это немного рискованно, но вы идете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...