如何获取从onReceive()触发的Intent的名称或类型

Mat*_*ros 1 android broadcastreceiver android-intent

我需要创建一个BroadcastReceiver可以在手机接听或拨打电话时收听的内容,因此我可以记录它何时开始以及何时结束.我意识到两个接收器看起来几乎相同,所以不是BroadcastReceiver为传入和传出调用创建两个单独的s,我可以为两者创建一个并使我的操作取决于触发的事件.

我注册的intent-filterS代表android.intent.action.PHONE_STATEandroid.intent.action.NEW_OUTGOING_CALL在清单中,但我怎么从找出onReceive()什么样的Intent被解雇?

@Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();

    // get the intent fired--incoming or outgoing call?
    // then, save it in a variable and perform corresponding actions
}
Run Code Online (Sandbox Code Playgroud)

pyu*_*s13 7

只需使用intent.getAction();

String action=intent.getAction();

if(action.equalsIgnoreCase(Intent.ACTION_NEW_OUTGOING_CALL)){

//dosomething here
}
else if(action.equalsIgnoreCase(second action)){

//do something here
}
Run Code Online (Sandbox Code Playgroud)