Dialer Intent - Android Studio - Compose
How to launch dialer pad with a specific phone number using Intent
Learn how to easily open the phone dialer or make a direct call in your Android app using Kotlin. This step-by-step guide explains how to use Intent.ACTION_DIAL and Intent.ACTION_CALL, request runtime permissions, and write clean Kotlin code in Android Studio. Ideal for beginners and professional Android developers looking to integrate calling features into their apps.
Code:
MainActivity.kt
package com.technifysoft.myapplication import android.content.Intent import android.net.Uri import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Button import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.technifysoft.myapplication.ui.theme.MyApplicationTheme class MainActivityCompose : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MainUi() } } } @Composable fun MainUi() { val context = LocalContext.current var number by remember { mutableStateOf("") } Column( modifier = Modifier .fillMaxSize() .padding(20.dp), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text( modifier = Modifier.fillMaxWidth(), text = "Dialer Intent", style = TextStyle(textAlign = TextAlign.Center), fontWeight = FontWeight.Bold ) Spacer(modifier = Modifier.height(10.dp)) OutlinedTextField( modifier = Modifier.fillMaxWidth(), value = number, onValueChange = { number = it }, placeholder = { Text(text = "Enter Number/Code...") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Phone) ) Spacer(modifier = Modifier.height(10.dp)) Button( modifier = Modifier, onClick = { if (number.isEmpty()){ Toast.makeText(context, "Enter Number...!", Toast.LENGTH_SHORT).show() } else { val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + Uri.encode(number))) context.startActivity(intent) } }) { Text(text = "Dial") } } } /** * GreetingPreview is a composable function for previewing the MainUI in Android Studio. * It is annotated with @Preview to enable live preview. * */ @Preview(showBackground = true) @Composable private fun GreetingPreview() { MyApplicationTheme { MainUi() } }



Comments
Post a Comment