ユーザーのダイヤル番号が+で始まると、電話を切ってから特定の番号に電話をかけるダイヤルアプリケーションがあります。以下のコードのように、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 は正常に機能します。何か案が?