diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6888c81..9fcce4b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,7 +4,11 @@
+
+
+
+
= Build.VERSION_CODES.S) {
arrayOf(
Manifest.permission.BLUETOOTH_ADVERTISE,
- Manifest.permission.BLUETOOTH_CONNECT
+ Manifest.permission.BLUETOOTH_CONNECT,
+ Manifest.permission.BLUETOOTH_SCAN,
+ Manifest.permission.ACCESS_FINE_LOCATION, // Required for BLE operations
+ Manifest.permission.ACCESS_COARSE_LOCATION // Required for BLE operations
)
} else {
arrayOf(
Manifest.permission.BLUETOOTH,
- Manifest.permission.BLUETOOTH_ADMIN
+ Manifest.permission.BLUETOOTH_ADMIN,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.ACCESS_COARSE_LOCATION
)
}
@@ -238,14 +243,18 @@ class MainActivity : ComponentActivity() {
}
}
} else {
- Log.w(TAG, "Some permissions denied: ${permissions.filter { !it.value }.keys}")
+ // Show which permissions were denied
+ val deniedPermissions = permissions.filter { !it.value }.keys
+ Log.w(TAG, "Some permissions denied: $deniedPermissions")
setContent {
MaterialTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
- PermissionDeniedScreen { requestPermissions() }
+ PermissionDeniedScreen(
+ deniedPermissions = deniedPermissions.toList()
+ ) { requestPermissions() }
}
}
}
@@ -291,8 +300,11 @@ class MainActivity : ComponentActivity() {
}
@Composable
-fun PermissionDeniedScreen(onRequestPermissions: () -> Unit) {
- Log.d(TAG, "Showing permission denied screen")
+fun PermissionDeniedScreen(
+ deniedPermissions: List,
+ onRequestPermissions: () -> Unit
+) {
+ Log.d(TAG, "Showing permission denied screen for permissions: $deniedPermissions")
Column(
modifier = Modifier
.fillMaxSize()
@@ -301,16 +313,25 @@ fun PermissionDeniedScreen(onRequestPermissions: () -> Unit) {
verticalArrangement = Arrangement.Center
) {
Text(
- text = "Bluetooth permissions are required to use this app",
+ text = "The following permissions are required:",
style = MaterialTheme.typography.bodyLarge,
textAlign = TextAlign.Center,
- modifier = Modifier.padding(bottom = 16.dp)
+ modifier = Modifier.padding(bottom = 8.dp)
)
+ deniedPermissions.forEach { permission ->
+ Text(
+ text = "• ${permission.split(".").last()}",
+ style = MaterialTheme.typography.bodyMedium,
+ textAlign = TextAlign.Center,
+ modifier = Modifier.padding(vertical = 4.dp)
+ )
+ }
Button(
onClick = {
Log.d(TAG, "Permission request button clicked")
onRequestPermissions()
- }
+ },
+ modifier = Modifier.padding(top = 16.dp)
) {
Text("Grant Permissions")
}