代码之家  ›  专栏  ›  技术社区  ›  Ryan Alford

广播接收器未接收到意图

  •  2
  • Ryan Alford  · 技术社区  · 15 年前

    所以现在我已经在清单文件中声明了我的broastcastrecever…

       <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);
             }
    
         }
    
     }
    

    但是,当我按下呼叫按钮时,我看不到祝酒词。我错过什么了吗?

    这是使用这个问题的答案的延续…

    How to use Intents from a Service or Broadcast Receiver?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Reto Meier    15 年前

    简而言之,你不能做你想做的事。

    “动作\呼叫\按钮”动作是“活动开始动作”,而不是“广播动作”。它可以用于 startActivity 启动一个活动,该活动应响应被按下的呼叫按钮。你想要的是在按下呼叫按钮时得到通知,而系统不会广播一个意图来宣布这一点。

    或者,也可以包括相同的 intent-filter 在一个活动上,当用户按下呼叫按钮时,它作为一个选项出现。

    当用户按下呼叫按钮时,您希望做什么?

        2
  •  1
  •   Roman Nurik    15 年前

    根据文件, ACTION_CALL_BUTTON 不是广播动作,而是活动动作。

    Dianne's message 在另一个线索中。