Saya tidak perlu memanggil nomor telepon, saya hanya perlu dialer untuk membuka dengan nomor telepon yang sudah ditampilkan. Apa yang Intent
harus saya gunakan untuk mencapai ini?
Saya tidak perlu memanggil nomor telepon, saya hanya perlu dialer untuk membuka dengan nomor telepon yang sudah ditampilkan. Apa yang Intent
harus saya gunakan untuk mencapai ini?
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 XMLandroid:autoLink="phone"
dan OS akan secara otomatis memulaiACTION_DIAL
Intent.sumber
Oke, itu akan menjadi jawaban yang sangat terlambat untuk pertanyaan ini. Tapi ini hanya satu contoh jika Anda ingin melakukannya di Kotlin .
Kupikir itu mungkin membantu seseorang.
sumber
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 bekerjatapi
+2348034448845
akansumber
Ini adalah bagaimana Anda dapat membuka nomor yang diberikan label EditText pada dialer secara langsung.
sumber
Tambahkan izin dalam manifes:
Buat tombol atau contoh widget apa pun:
btnCall
sumber