1

我有拨号应用程序,当用户拨打号码以 + 开头时,它将挂断然后呼叫特定号码。我在 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 将正常工作。任何想法?

4

1 回答 1

0

我面临与 Galaxy S3(GT-I9300)相同的问题。我尝试启动新活动而不是触发 ACTION_CALL(我的代码最初也触发 ACTION_CALL,但修改为调试)。在这种情况下,它可以与调试器一起使用,但如果没有调试器附件则无法使用。

于 2012-06-22T19:01:28.013 回答