2010-02-07 3 views
1

Я пытаюсь создать уведомление, которое вибрирует в телефоне и воспроизводит звук, когда экран выключен (CPU выключен). Согласно сообщениям журнала, уведомление отправляется, но телефон не вибрирует или не воспроизводит звук, пока я снова не включу экран. Я попробовал провести 2-секундный временный wakelock (PowerManager.PARTIAL_WAKE_LOCK), который, как я думал, будет достаточным для прослушивания уведомления, но, увы, он все равно этого не делает.Уведомление, когда экран выключен

Любые указатели, чтобы получить уведомление для надежного запуска? Я тестирую это на G1 под управлением Android 1.6.

код я использую:

notif.vibrate = new long[] {100, 1000}; 
notif.defaults |= Notification.DEFAULT_SOUND; 

notif.ledARGB = Color.RED; 
notif.ledOnMS = 1; 
notif.ledOffMS = 0; 
notif.flags = Notification.FLAG_SHOW_LIGHTS; 

notif.flags |= NOTIF_FLAGS; //static var 

if (!screenOn) { //var which updates when screen turns off/on 
    mWakeLock.acquire(2000); 
} 

manager.notify(NOTIF_ID, notif); 
+0

Вы пытались развернуть на реальный устройство? Возможно, эмулятор неисправен с Notification Wake-ups. –

ответ

0

Вы можете сделать свой собственный приемник, который распространяется на BroadcastReceiver, который может выполнять ваше уведомление, когда он получает INTENT.ACTION_SCREEN_OFF

@Override 
public void onReceive(Context context, Intent intent) { 
    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
    long milliseconds = 1000; 
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
     // vibrate the phone 
      v.vibrate(milliseconds); 
     // any other code here    
    } 
} 
+0

Уведомление не нужно показывать, когда экран выключается, он показывает его, когда гнездо отключается. –

+0

Я удалил комментарий, но попытаюсь проверить, работает ли приведенный выше код. Так как я не знаю, как выглядит ваш код, это может быть полезно или избыточно. –

+0

В уведомлении уже установлен параметр вибровызова, в котором используется notification.vibrate = new long [] {100, 1000}. Уведомление может быть показано в любое время, пока мое приложение запущено, проблема заключается в том, что уведомление не воспроизводится, когда экран выключен. Мне не нужно ничего делать с уведомлением, когда отправляется трансляция с экрана. –

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