feat: improve scanning stability & connect to freshly bonded devs
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user