Jawaban:
Dua cara untuk mencapainya.
1) Perlu memulai dialer melalui kode, tanpa interaksi pengguna.
Kamu membutuhkan Action_Dial
,
gunakan kode di bawah ini akan membuka Dialer dengan nomor yang ditentukan
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
Awalan 'tel:' diperlukan , selain itu pengecualian berikut akan dilemparkan: java.lang.IllegalStateException: Tidak dapat menjalankan metode aktivitas.
Action_Dial tidak memerlukan izin apa pun.
Jika Anda ingin memulai panggilan secara langsung tanpa interaksi pengguna , Anda dapat menggunakan tindakan Intent.ACTION_CALL
. Dalam hal ini, Anda harus menambahkan izin berikut di AndroidManifest.xml Anda:
<uses-permission android:name="android.permission.CALL_PHONE" />
2) Perlu pengguna untuk mengklik string Phone_Number dan memulai panggilan.
android:autoLink="phone"
Anda perlu menggunakan TextView dengan properti di bawah ini.
android: autoLink = "phone" android: linksClickable = "true" properti textView
Anda tidak perlu menggunakan niat atau untuk mendapatkan izin melalui cara ini.
Cukup terlambat pada jawabannya, tetapi jika Anda memiliki TextView
nomor telepon yang Anda tunjukkan, maka Anda tidak perlu berurusan dengan maksud sama sekali, Anda cukup menggunakan atribut XML android:autoLink="phone"
dan OS akan secara otomatis memulai ACTION_DIAL
Intent.
Oke, itu akan menjadi jawaban yang sangat terlambat untuk pertanyaan ini. Tapi ini hanya satu contoh jika Anda ingin melakukannya di Kotlin .
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)
Kupikir itu mungkin membantu seseorang.
Seperti @ashishduh yang disebutkan di atas, menggunakan android:autoLink="phone
juga merupakan solusi yang baik. Tetapi opsi ini hadir dengan satu kelemahan, tidak bekerja dengan semua panjang nomor telepon. Misalnya, nomor telepon 11 nomor tidak akan berfungsi dengan opsi ini. Solusinya adalah dengan awalan nomor telepon Anda dengan kode negara.
Contoh:
08034448845
tidak akan bekerja
tapi +2348034448845
akan
<TextView
android:id="@+id/phoneNumber"
android:autoLink="phone"
android:linksClickable="true"
android:text="+91 22 2222 2222"
/>
Ini adalah bagaimana Anda dapat membuka nomor yang diberikan label EditText pada dialer secara langsung.
Tambahkan izin dalam manifes:
<uses-permission android:name="android.permission.CALL_PHONE" />
Buat tombol atau contoh widget apa pun: btnCall
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel: +98990*******");
startActivity(callIntent);
}
});