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 では機能しません。トースト メッセージが表示されますが、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 に答える