次のコードを使用して、特定の条件下で発信通話の電話番号を変更しています。コードは機能しているようです。トーストには古い番号と新しい番号が表示されますが、電話ダイヤラーのダイヤル画面には古い番号が表示されます。ただし、通話後に通話履歴の詳細を確認すると、新しい番号が表示されます。
ダイヤラー画面に更新された番号を表示するにはどうすればよいですか?
public void onReceive(Context context,Intent intent) {
final String oldNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
String modNumber = "";
if (oldNumber.startsWith("xx")) {
modNumber = oldNumber.replace("xx", "yyy");
this.setResultData(modNumber );
final String newNumber = this.getResultData();
String msg = "Call Intercepted. Old number " + oldNumber + ", new number " + newNumber;
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
}
}
android.permission.PROCESS_OUTGOING_CALLS はマニフェスト ファイルに存在します。
アプリは、Android 5.0.2 (Lollipop) を実行している電話に展開されます