使用广播接收器检测拨出呼叫

时间:2013-12-09 06:30:35

标签: android

我正在使用广播接收器来检测传出呼叫,以下代码在独立代码中正常工作。

我的问题是,如何在我的主要活动中调用此方法,因为我想比较字符串编号然后执行操作。请帮我! 谢谢。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class OutgoingCallReceiver extends BroadcastReceiver  {
    @Override
    public void onReceive(Context context, Intent intent) {
        String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        Log.d("DEBUG", "RINGING (outgoing call) with number: " + number);
        Toast.makeText(context, "Outgoing call number: " + number, Toast.LENGTH_LONG).show();    
    }
}

1 个答案:

答案 0 :(得分:0)

您可以将整个Intent作为额外标志传递给您的活动。 在您编辑的代码下面找到将意图传递给创建的新激活的代码:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class OutgoingCallReceiver extends BroadcastReceiver  {
    @Override
    public void onReceive(Context context, Intent intent) {
        String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        Log.d("DEBUG", "RINGING (outgoing call) with number: " + number);
        Toast.makeText(context, "Outgoing call number: " + number, Toast.LENGTH_LONG).show(); 

        // You can go to another activity by the below code
        Intent i = new Intent(context, OutgoingCallDisplay.class);
        i.putExtras(intent);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i) 
    }
}

如果您对我的回答有任何疑问,请随时与我联系。祝你好运