package
com.example.newcanaryproject
import
android.Manifest
import
android.Manifest.permission.READ_EXTERNAL_STORAGE
import
android.app.Activity
import
android.content.BroadcastReceiver
import
android.content.Context
import
android.content.Context.TELEPHONY_SERVICE
import
android.content.Intent
import
android.content.IntentFilter
import
android.content.pm.PackageManager
import
android.database.Cursor
import
android.os.Build
import
android.os.Bundle
import
android.os.Environment
import
android.provider.MediaStore
import
android.telephony.TelephonyManager
import
android.util.Log
import
android.widget.Toast
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.annotation.RequiresApi
import
androidx.compose.foundation.ExperimentalFoundationApi
import
androidx.compose.foundation.Image
import
androidx.compose.foundation.layout.*
import
androidx.compose.foundation.lazy.GridCells
import
androidx.compose.foundation.lazy.LazyVerticalGrid
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.res.painterResource
import
androidx.compose.ui.semantics.Role.Companion.Image
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.*
import
androidx.core.app.ActivityCompat
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat.getSystemService
import
androidx.localbroadcastmanager.content.LocalBroadcastManager
import
coil.compose.rememberImagePainter
import
com.example.newcanaryproject.ui.theme.*
import
java.io.File
class
MainActivity : ComponentActivity() {
@RequiresApi
(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"GFG"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
displayIMEI(LocalContext.current, LocalContext.current as Activity)
}
}
}
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super
.onRequestPermissionsResult(requestCode, permissions, grantResults)
when (requestCode) {
101
-> {
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
) {
if
(ActivityCompat.checkSelfPermission(
context,
Manifest.permission.READ_PHONE_STATE
) != PackageManager.PERMISSION_GRANTED
) {
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
val imei = telephonyManager.imei
Text(
text = imei,
modifier = Modifier.padding(
5
.dp),
fontSize =
20
.sp,
fontWeight = FontWeight.Bold
)
}
}