通話のブロックと配信に関してイライラする問題があります。
私のアプリの流れは次のとおりです。
NEW_OUTGOING_CALL
のインテントを受信し、(によってsetResultData(null);
)通話を停止し、サービスSを開始する放送受信機BR 。- Sは、呼び出すかどうかを決定します(そしてダイアログを表示します)。フラグを付けて呼び出すこと
startActivity()
にした場合。(そして、次にBRがそれを受信するときにそれがブロックされないように、いくつかの識別子を入れます。ACTION_CALL
NEW_TASK
このフローはこれまではうまく機能しましたが、Galaxy S3では問題があります:
- 呼び出しをブロックするだけです。新しい呼び出しのstartActivity()は機能しません。
- これは、システムがまだ最初のリクエストを処理していて、新しい呼び出しをドロップしたために発生したと思います。
- abortBroadcast();を呼び出そうとしました。BRからですが、「呼び出しが送信されませんでした」oppupを受け取りました。これは、システムがまだその意図を処理していることを意味します。
- 2つの呼び出しの間に少し時間がかかるように、サービスにポストディレイを設定することで、目的の機能を取得することに成功しました。
新しい呼び出しを遅らせることなく、目的の機能を実現できますか?