BroadcastReceiverは意図を受けていません
-
19-09-2019 - |
質問
今、私は私のBroastcastReceiverは、マニフェストファイルで宣言されているので...
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON" />
</intent-filter>
</receiver>
私は、通話ボタンを押したときの意図をキャッチしたいと思います。
ここで私のコード...
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "intent received", Toast.LENGTH_LONG);
if(intent.getAction().equals("android.intent.action.CALL_BUTTON")) {
Toast.makeText(context, "call button pressed", Toast.LENGTH_LONG);
}
}
}
私は、コールボタンを押したときにしかし、私はトーストが表示されません。私が何かを見逃していましたか?
これは、この質問から答えを使用して続きです...
解決
短い答えは、あなたが何をしようとして行うことができないということです。
「ACTION_CALL_BUTTON」アクションが「アクションを開始するアクティビティ」よりもむしろ「ブロードキャスト・アクション」です。これは、コールボタンが押されることに応答しなければならないのアクティビティを起動するためにstartActivity
で使用意向で使用することができます。何が欲しいのは、コールボタンが押されたときに通知されるようになり、システムはそれを発表する意向を放送していません。
また、あなたはそれは彼らが通話ボタンを押したときにユーザが選択するためのオプションとして出ているために活動上の同じintent-filter
を含めることができます。
ユーザーが通話ボタンを押したときに、あなたが行うことを期待しては何ですか?
他のヒント
文書毎の、 ACTION_CALL_BUTTON
の放送ではありませんアクション;むしろ、それは活動のアクションです。
別のスレッドで、この程度ダイアンのメッセージを参照してください。
所属していません StackOverflow