さて、私は特定の番号をダイヤルすることで開始するアプリケーションを作成しました。ダイヤル イベントをキャッチするためにNEW_OUTGOING_CALL (ブロードキャスト レシーバー) を使用しました。これまでのところ、私の AndroidManifest.xml のブロードキャスト レシーバーは次のコードのようなものです。
<receiver android:name=".CustomBroadCastReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
問題は、新しいシステムで試してみると、最初は機能しないことですが、数回テストした後、機能し始めます。Android のログを確認したところ、ブロードキャスト レシーバーとしても登録されていないようです。Android リファレンスでこの動作の理由を見つけることができませんでした。また、誰かが同じ問題を抱えていて、その解決策を見つけたかどうかを知りたいです。
この放送受信機が私のアプリケーションの起動トリガーであると考えてください。
停止されたパッケージについても読んだことがあります. それが私のケースに関連しているかどうか知りたいです. 関連している場合, AndroidManifest.xml に FLAG_INCLUDE_STOPPED_PACKAGES などのフラグを設定する方法はありますか?
======編集======
adbシェルで初めて次のコマンドを呼び出した後
am broadcast -n com.package.name/.StartApp
この行はエミュレータのログに表示されます
06-15 11:17:53.216: INFO/ActivityManager(74): Start proc com.package.name for broadcast com.package.name/.StartApp: pid=2153 uid=10041 gids={3003}
そして、ブロードキャストレシーバーがエミュレーターに登録されます。ブロードキャストレシーバーを登録するには、アプリケーションを開始する必要があるようです