From e704139a0768bfaf8346d35d6f5dd4bccf2b0da9 Mon Sep 17 00:00:00 2001 From: Fabian Christoffel Date: Wed, 14 Jun 2023 14:49:47 +0200 Subject: [PATCH] feat: make sure bluetooth is enabled --- .../example/sensortestingapp/MainActivity.kt | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/app/src/main/java/com/example/sensortestingapp/MainActivity.kt b/app/src/main/java/com/example/sensortestingapp/MainActivity.kt index 80a7135..d1c5dc3 100644 --- a/app/src/main/java/com/example/sensortestingapp/MainActivity.kt +++ b/app/src/main/java/com/example/sensortestingapp/MainActivity.kt @@ -1,5 +1,14 @@ package com.example.sensortestingapp +import android.Manifest +import android.annotation.SuppressLint +import android.app.Activity +import android.bluetooth.BluetoothAdapter +import android.bluetooth.BluetoothManager +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build import android.os.Bundle import com.google.android.material.snackbar.Snackbar import androidx.appcompat.app.AppCompatActivity @@ -10,13 +19,21 @@ import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import android.view.Menu import android.view.MenuItem +import androidx.core.content.ContextCompat import com.example.sensortestingapp.databinding.ActivityMainBinding +private const val ENABLE_BLUETOOTH_REQUEST_CODE = 1 + class MainActivity : AppCompatActivity() { private lateinit var appBarConfiguration: AppBarConfiguration private lateinit var binding: ActivityMainBinding + private val bluetoothAdapter: BluetoothAdapter by lazy { + val bluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager + bluetoothManager.adapter + } + override fun onCreate(savedInstanceState: Bundle?) { WindowCompat.setDecorFitsSystemWindows(window, false) super.onCreate(savedInstanceState) @@ -58,4 +75,31 @@ class MainActivity : AppCompatActivity() { return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } + + override fun onResume() { + super.onResume() + if (!bluetoothAdapter.isEnabled) { + promptEnableBluetooth() + } + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + when (requestCode) { + ENABLE_BLUETOOTH_REQUEST_CODE -> { + if (resultCode != Activity.RESULT_OK) { + promptEnableBluetooth() + } + } + } + } + + @SuppressLint("MissingPermission") + private fun promptEnableBluetooth() { + if (!bluetoothAdapter.isEnabled) { + val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) + startActivityForResult(enableBtIntent, ENABLE_BLUETOOTH_REQUEST_CODE) + } + } + } \ No newline at end of file