我有拨号应用程序,当用户拨打号码以 + 开头时,它将挂断然后呼叫特定号码。我在 BroadcastReceiver 的 onReceive 中执行此操作,代码如下。
public void onReceive(Context context, Intent intent) {
to = intent.getStringExtra("android.intent.extra.PHONE_NUMBER");
if (to == null)
return;
if (to.startsWith("+")) {
setResultData(null);
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456789"));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(callIntent);
Toast toast = Toast.makeText(context, "Call trap and Redirect", Toast.LENGTH_LONG);
toast.show();
return;
}
}
此代码在其他型号上运行良好,但在 Galaxy S3 上却不行。Toast 消息显示但 intent.action_call 未拨出???只是安静,logcat 没有错误。
仅当从广播接收器内部启动意图时才会发生这种情况,从活动启动时,intent.action_call 将正常工作。任何想法?