package com.geeksforgeeks.demo
import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.Context.TELEPHONY_SERVICE
import android.content.pm.PackageManager
import android.os.*
import android.telephony.TelephonyManager
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.annotation.RequiresApi
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.*
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.*
import androidx.core.app.ActivityCompat
import com.geeksforgeeks.demo.ui.theme.DemoTheme
class MainActivity : ComponentActivity() {
@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DemoTheme {
val context = LocalContext.current
val activity = context as Activity
DisplayIMEI(context, activity)
}
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray,
deviceId: Int
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults, deviceId)
// checking request code.
if (requestCode == 101) {
// checking if permission is granted.
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED
) {
Toast.makeText(this, "Permission granted.", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Permission denied.", Toast.LENGTH_SHORT).show()
}
}
}
}
@RequiresApi(Build.VERSION_CODES.O)
@Composable
fun DisplayIMEI(context: Context, activity: Activity) {
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
// checking for permissions
if (ActivityCompat.checkSelfPermission(
context,
Manifest.permission.READ_PHONE_STATE
) != PackageManager.PERMISSION_GRANTED
) {
// if permissions are not provided, request for permissions
ActivityCompat.requestPermissions(
activity,
arrayOf(Manifest.permission.READ_PHONE_STATE), 101
)
}
Text(
text = "IMEI Number of Android Device",
fontSize = 20.sp,
modifier = Modifier.padding(5.dp),
fontWeight = FontWeight.Bold
)
val telephonyManager = context.getSystemService(TELEPHONY_SERVICE) as TelephonyManager
// get imei from Telephony Manager.
val imei = telephonyManager.imei
// IMEI text display
Text(
text = imei,
modifier = Modifier.padding(5.dp),
fontSize = 20.sp,
fontWeight = FontWeight.Bold
)
}
}