2010-02-07 20 views
1

화면 꺼짐 (CPU 꺼짐) 일 때 전화를 진동시키고 소리를 재생하는 알림을 생성하려고합니다. 로그 메시지에 따르면 알림이 전송되지만 화면을 다시 켜기 전까지는 전화가 진동하거나 소리를 재생하지 않습니다. 나는 2 초의 일시적인 wakelock (PowerManager.PARTIAL_WAKE_LOCK)을 보유하려고했는데, 이는 알림을 재생할 충분한 시간이라고 생각했지만, 슬프게도 여전히 그렇지 않습니다.화면이 꺼져있을 때 알림

알림을 안정적으로 실행하기위한 지침은 무엇입니까? Android 1.6을 실행하는 G1에서이 문제를 테스트하고 있습니다. 내가 사용

코드 :

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

를받을 때 알림을 수행 할 수 있습니다 BroadcastReceiver 확장 당신은 실제에 배포하는 시도 해 봤나 장치? 어쩌면 에뮬레이터가 알림 깨우기와 함께 버그가있을 수 있습니다. –

답변

0

당신은 당신의 자신의 수신기를 만들 수는 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}을 사용하여 진동 옵션이 ​​설정되어 있습니다. 내 앱이 실행되는 동안 알림은 언제든지 표시 될 수 있지만 스크린이 꺼져있을 때 알림이 재생되지 않는 문제가 있습니다. 방송 끄기 화면이 전송 될 때 알림으로 아무 것도 할 필요가 없습니다. –

관련 문제