Ich habe einen typischen onAudioFocusChange
Code in meinem Spiel.AUDIOFOCUS_GAIN wird nach AUDIOFOCUS_LOSS_TRANSIENT nach einem Telefonanruf nicht gerufen
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
Log.i(TAG,"AUDIOFOCUS_GAIN");
mHasAudioFocus = requestAudioFocus();
break;
case AudioManager.AUDIOFOCUS_LOSS:
Log.i(TAG,"AUDIOFOCUS_LOSS");
abandonAudioFocus();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
Log.i(TAG,"AUDIOFOCUS_LOSS_TRANSIENT");
abandonAudioFocus();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
Log.i(TAG,"AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK");
abandonAudioFocus();
break;
default:
Log.i(TAG,"Unrecognized audiofocus change");
}
Das Problem ist, dass, wenn ein schwebendes Fenster erscheint auf Samsung Telefone die Anwendung AUDIOFOCUS_LOSS_TRANSIENT
Nachricht empfängt, aber wenn dieses Fenster geschlossen ist, kommt keine Meldung an die Anwendung.
Hier werden relevante Protokollzeilen:
13:20:53.253 770 7745 I MediaFocusControl: AudioFocus requestAudioFocus() from AudioFocus_For_Phone_Ring_And_Calls
13:20:53.253 14499 14499 I com.js.helpers.JSNativeActivity: AUDIOFOCUS_LOSS_TRANSIENT
13:20:53.253 14499 14499 I com.js.helpers.JSNativeActivity: abandonAudioFocus()
13:20:53.253 14499 14499 I JSNativeActivity: onAbandonAudioFocus
13:20:53.253 770 1508 I MediaFocusControl: AudioFocus abandonAudioFocus() from android.media.AudioManager$42599770com.js.helpers.JSNativeActivity$4252c788
13:20:53.253 770 1508 I MediaFocusControl: AudioFocus removeFocusStackEntry(): removing entry for android.media.AudioManager$42599770com.js.helpers.JSNativeActivity$4252c788
13:21:01.383 770 1220 I MediaFocusControl: AudioFocus abandonAudioFocus() from AudioFocus_For_Phone_Ring_And_Calls
Irgendwelche Ideen, wie Schließen des Fensters zu fangen?