【发布时间】:2011-02-03 02:36:54
【问题描述】:
我有一个广播接收器,它监听所有拨出电话。在另一个活动中,我拨打一个拨出电话。在我的 BC 中,我希望能够确定在活动中创建了哪些呼叫,因此我在拨打电话时使用 putExtras() 放置一个标记字段。问题是,在 BC 的 onReceive() 中,我根本看不到额外的数据字段(返回 null)。
这里是相关的Activity代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
appGlobal gState = (appGlobal)getApplicationContext();
dh = gState.getSqlDataHelper();
Bundle extras = getIntent().getExtras();
if(extras != null)
{
phoneNumber = extras.getString("number");
}
makePhoneCall();
finish();
}
private void makePhoneCall()
{
if (phoneNumber.length() < 1) {
return;
}
String url = "tel:" + phoneNumber;
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
intent.putExtra("number", "bla");
startActivity(intent);
}
这里是相关的BC代码:
public class CallMeNotServiceCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (intent.getStringExtra("number") != null)
{ Log.w("bla", "HAS KEY!!!"); }
...
这种情况需要 PendingIntent 吗?
【问题讨论】:
标签: android android-intent broadcastreceiver extras