package
com.example.testproject
import
android.annotation.SuppressLint
import
android.content.Context
import
android.hardware.Sensor
import
android.hardware.SensorManager
import
android.os.Bundle
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.Composable
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.text.font.FontFamily
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.tooling.preview.Preview
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
import
com.example.testproject.ui.theme.TestProjectTheme
import
com.example.testproject.ui.theme.greenColor
class
MainActivity : ComponentActivity() {
@SuppressLint
(
"UnusedMaterialScaffoldPaddingParameter"
)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
TestProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"GFG"
,
color = Color.White,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
)
}
)
}
) {
displaySensors()
}
}
}
}
}
}
@Composable
fun displaySensors() {
val ctx = LocalContext.current
Column(
modifier = Modifier
.fillMaxSize()
.fillMaxHeight()
.fillMaxWidth()
.padding(
5
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
var sensorManager: SensorManager =
ctx.getSystemService(Context.SENSOR_SERVICE) as SensorManager
var deviceSensors: List<Sensor> = sensorManager.getSensorList(Sensor.TYPE_ALL)
Text(
text =
"Sensors in Devices are : "
,
color = Color.Black,
fontWeight = FontWeight.Bold,
fontFamily = FontFamily.Default,
fontSize =
20
.sp, modifier = Modifier.padding(
5
.dp)
)
var sensorsData =
""
for
(sens in deviceSensors) {
sensorsData = sensorsData + sens.name +
" \n\n"
}
Text(
text = sensorsData,
color = Color.Black,
fontWeight = FontWeight.Black,
fontFamily = FontFamily.Default,
textAlign = TextAlign.Center,
fontSize =
12
.sp,
modifier = Modifier.padding(
5
.dp)
)
}
}