bluetooth check and enabling

This commit is contained in:
lash404 committed 2026-11-02 08:13:55 +01:00
1 parent 025f754504
commit 89a0671cff
3 files changed
+18 -6

No files matched your search

@@ -18,6 +18,7 @@ import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission import androidx.annotation.RequiresPermission
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.app.ActivityCompat.startActivityForResult
import com.example.smart_watch_android.MainViewModel import com.example.smart_watch_android.MainViewModel
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -40,7 +41,7 @@ object BLEManager{
private val deviceUUIDs = DeviceUUIDs private val deviceUUIDs = DeviceUUIDs
private var bluetoothGatt: BluetoothGatt? = null private var bluetoothGatt: BluetoothGatt? = null
private lateinit var bluetoothManager: BluetoothManager private lateinit var bluetoothManager: BluetoothManager
private lateinit var bluetoothAdapter: BluetoothAdapter lateinit var bluetoothAdapter: BluetoothAdapter
val gattCallback = object : BluetoothGattCallback() { val gattCallback = object : BluetoothGattCallback() {
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT) @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
override fun onConnectionStateChange(gatt: BluetoothGatt, status: Int, newState: Int) { override fun onConnectionStateChange(gatt: BluetoothGatt, status: Int, newState: Int) {
@@ -108,7 +109,6 @@ object BLEManager{
} }
if (missingPermissions.isNotEmpty()) { if (missingPermissions.isNotEmpty()) {
// Berechtigungen anfordern
ActivityCompat.requestPermissions(activity, missingPermissions.toTypedArray(), 101) ActivityCompat.requestPermissions(activity, missingPermissions.toTypedArray(), 101)
} else { } else {
Log.d("ESP32_BLE", "Alle Bluetooth-Berechtigungen sind bereits erteilt!") Log.d("ESP32_BLE", "Alle Bluetooth-Berechtigungen sind bereits erteilt!")
@@ -1,11 +1,15 @@
package com.example.smart_watch_android package com.example.smart_watch_android
import android.Manifest import android.Manifest
import android.bluetooth.BluetoothAdapter
import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission import androidx.annotation.RequiresPermission
@@ -17,12 +21,24 @@ import com.example.smart_watch_android.BLE.BLEManager
import com.example.smart_watch_android.Screens.AppNavigation import com.example.smart_watch_android.Screens.AppNavigation
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
private val enableBluetoothLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == RESULT_OK) {
Log.d("BLE_","Bluetooth enabled")
}
}
private val viewModel: MainViewModel by viewModels() private val viewModel: MainViewModel by viewModels()
@RequiresApi(Build.VERSION_CODES.S) @RequiresApi(Build.VERSION_CODES.S)
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT) @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
override fun onCreate(savedInstanceState: Bundle?,) { override fun onCreate(savedInstanceState: Bundle?,) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
BLEManager.init(context = applicationContext, activity = this) BLEManager.init(context = applicationContext, activity = this)
val adapter = BLEManager.bluetoothAdapter
if (!adapter.isEnabled) {
val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
enableBluetoothLauncher.launch(enableBtIntent)
}
enableEdgeToEdge() enableEdgeToEdge()
setContent { setContent {
MaterialTheme { MaterialTheme {
@@ -62,10 +62,6 @@ fun ConnectScreen(viewModel: MainViewModel) {
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) )
{ {
Box(
){
Text("if the list is empty ensure you have bluetooth enabled!")
}
Box( Box(
modifier = Modifier modifier = Modifier
.padding(16.dp) .padding(16.dp)