私の電話番号はTextView
にあり、「インテントピッカー」を開いて、通話に使用するアプリケーション(Skype、Viber ...)を選択するか、ダイヤルして呼び出すだけです。
Intent callIntent = new Intent(Intent.ACTION_CALL);
は即座に呼び出されるため、役に立ちません。
私はあなたがこのようなものを探していると思います:
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
これにより、番号が入力された状態でダイヤラーが開きます(または、電話をかけることができる複数のアプリがインストールされている場合は選択ダイアログが作成されます)が、実際には通話は開始されません。詳細は this answer を参照してください。
公式ソリューション
意図の例:
public void dialPhoneNumber(String phoneNumber) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
コトリン用
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:0123456789")
startActivity(intent)