feat: improve scanning stability & connect to freshly bonded devs

This commit is contained in:
Stefan Zollinger
2024-08-19 14:39:23 +02:00
parent 48c6b2c314
commit d210a2754d
2 changed files with 11 additions and 6 deletions

View File

@@ -18,6 +18,7 @@ import android.bluetooth.le.ScanCallback
import android.bluetooth.le.ScanFilter
import android.bluetooth.le.ScanResult
import android.bluetooth.le.ScanSettings
import android.bluetooth.le.ScanSettings.MATCH_NUM_ONE_ADVERTISEMENT
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
@@ -210,6 +211,7 @@ class ConnectionManager(val context: Context, bleAdapter: BluetoothAdapter) {
private val scanSettings = ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setNumOfMatches(ScanSettings.MATCH_NUM_ONE_ADVERTISEMENT)
.build()
private val bleScanner by lazy {
@@ -308,7 +310,8 @@ class ConnectionManager(val context: Context, bleAdapter: BluetoothAdapter) {
fun startScan() {
if (!isScanning) {
isScanning = true
bleScanner.startScan( null, scanSettings, scanCallback)
val filter = ScanFilter.Builder().setDeviceName("KIRBY").build()
bleScanner.startScan(listOf(filter), scanSettings, scanCallback)
}
}

View File

@@ -21,6 +21,7 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View.INVISIBLE
import android.view.View.VISIBLE
import android.view.WindowManager
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts.CreateDocument
@@ -160,6 +161,10 @@ class MainActivity : AppCompatActivity() {
lifecycleScope.launch {
settings.loadSettings()
if(settings.getSettings().lowPowerMode) {
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
}
}
@@ -202,6 +207,7 @@ class MainActivity : AppCompatActivity() {
}
private fun addBondedDevices(): Unit {
bondedDevices.clear()
bluetoothAdapter.bondedDevices.filter { isKirbyDevice(it) }.forEach {
bondedDevices.add(it.address)
newKirbyDevice(it)
@@ -235,11 +241,7 @@ class MainActivity : AppCompatActivity() {
kirbyDevice.onScanResult(callbackType, result)
}
if (bondedDevices.contains(result.device.address)) {
Log.i("KirbyDevice", "Auto connecting to bonded device" + result.device.address)
kirbyDevice.connect()
}
kirbyDevice.connect()
}
}
})