Question

Je suis en train de créer une application qui peut utiliser l'androïde comme une machine de fax, IE Envoyer une photo comme un fax ou recevoir un fax et sauvegarder une image. Jusqu'à présent, je commence dès le départ au sol et en vous assurant que je peux intercepter un appel à la discrétion des utilisateurs. J'ai un récepteur enregistré dans le manifeste de mon programme avec un filtre de Phone_State qui drapeaux lorsque l'état a été modifié (appel entrant).

Alors mon BroadcastReceiver je suis en train d'avoir un pop-up AlertDialog invitant l'utilisateur à accepter par fax ou par appel, mais le AlertDialog semble jeter un android.view.WindowManager $ BadTokenException erreur quand il a un appel entrant. Mon code est tout simple un OnReceive (arg0 contexte, arg1 intention) et je passe le arg0 au AlertDialog ...

Le message d'erreur complet est ci-dessous

08-08 00:16:14.315: ERROR/AndroidRuntime(275): java.lang.RuntimeException: Unable to start receiver com.android.fax.IncomingFax: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
08-08 00:16:14.315: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2550)
08-08 00:16:14.315: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.access$3000(ActivityThread.java:116)
08-08 00:16:14.315: ERROR/AndroidRuntime(275):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1843)

D'après ce que je l'ai vu dans le code AlertDialog, il passe le contexte ainsi qu'une fenêtre et WindowManager, que je crois est la raison pour laquelle il est écraser, est-il une meilleure façon ou d'une autre chose que je devrais utiliser qui pourrait superposer l'appel écran?

Était-ce utile?

La solution

Tout d'abord, vous ne pouvez pas obtenir le flux audio en appel d'Android. Avec cette limitation, je ne sais pas comment vous allez recevoir un fax.

En ce qui concerne votre erreur, un BroadcastReceiver manifeste enregistré est pas un Activity, et donc il ne peut pas créer une boîte de dialogue. Vous pouvez, en principe, appel startActivity() pour démarrer une Activity (peut-être un à thème comme une boîte de dialogue), mais je ne sais pas si oui ou non il apparaît sur l'écran d'appel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top