Cette méthode sera-t-elle appelée? (Toujours besoin d'une réponse acceptée … Voir les détails en réponse)

TL; DR:

onPause méthode onPause elle appelée lors d'un appel téléphonique?

J'ai l'autorisation de READ_PHONE_STATE que je ne veux pas. Alors, la méthode onPause est-elle appelée sur un appel téléphonique, afin que je puisse masquer mes applications audio là-bas?

 private PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (doesUserHavePermission()) { if (state == TelephonyManager.CALL_STATE_RINGING) { onPhoneCallInterrupt(); //Method I made that mutes audio for phone call } else if (state == TelephonyManager.CALL_STATE_IDLE) { } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) { onPhoneCallInterrupt(); //Method I made that mutes audio for phone call } } } }; 

Cela nécessite cette autorisation:

Entrez la description de l'image ici

Ce dont je veux me débarrasser. Alors, dois-je écouter explicitement un appel? Ou est-ce que je peux simplement mettre en sourdine sur l'OnPause ()?

Voici mon application, vous pouvez voir les demandes d'autorisation lors d'une tentative de téléchargement:

Https://play.google.com/store/apps/details?id=com.culybrace.ruchir.buttonsmasher&hl=fr

2 Solutions collect form web for “Cette méthode sera-t-elle appelée? (Toujours besoin d'une réponse acceptée … Voir les détails en réponse)”

Selon mon expérience, cela dépend des téléphones. Il y a 2 cas. 1. Lorsque l'anneau arrive -> nouvelle Activité d'appel commence. : Dans ce cas onPause est appelé parce que l'activité est terminée sur votre application. 2. Lorsque la sonnerie arrive -> la fenêtre de sonnerie s'affiche sur l'application (pas l'activité): Dans ce cas, aucun appel d'activité n'est appelé. Et l'utilisateur peut utiliser l'application comme précédemment.

Vous pouvez utiliser AudioManager sans autorisation, consultez AUDIOFOCUS_LOSS appelé après un appel téléphonique sur Android

Si vous ne savez pas, la méthode sera appelée, vous pouvez simplement utiliser la fonction de débogage en Shift + F9 sur Shift + F9 pendant que votre émulateur / périphérique externe est branché, déposez le débogueur sur la ligne que vous souhaitez voir si c'est Exécutez ou non, appuyez sur F9 pour passer au prochain débogueur, appuyez sur F8 pour passer à la ligne suivante.

coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.