Android 熄屏 后台 蓝牙服务推送 消息失败 ?

Android 手机开启一个前台服务 开启任务栏通知
在前台服务里面 接收手机微信 qq消息 推送到蓝牙设备
在手机息屏后 几分钟 就推送不了 微信/qq 消息了

然后在手机再次解锁 后 之前没有推送过去的消息 一下子全部推送过去了
导致设备 一下子频繁震动 卡死

** 有没有什么解决方案 再次解锁屏幕后 不推送信息 ? **

蓝牙采用的 implementation 'no.nordicsemi.android:ble:2.3.1' sdk

连接代码如下


                    var f =  BluetoothAdapter.getDefaultAdapter().isOffloadedScanBatchingSupported

                    // Scanning settings
                    val settings =
                        ScanSettings.Builder()
//                            .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) //低功耗模式  应用在后台时候采用此模式
                            .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) // 平衡模式
                            .setReportDelay(0)
                            .setUseHardwareBatchingIfSupported(false)       // 是否 选择批量发送信息 间隔  50 毫秒发送一次  不再实时推送 以达到省电
                            .setUseHardwareCallbackTypesIfSupported(false)  //休眠唤醒后是否  继续发送 休眠途中 收到的信息
                            .build()
                    if(BleUtil.isBleEnabled()) {
                        Logger.e("尝试连接设备... 清除旧的连接状态  扫描2秒")
                        val scanner = BluetoothLeScannerCompat.getScanner()
                        scanner.stopScan(scanCallback)
                        Thread.sleep(100);
                        var array = arrayListOf<ScanFilter>();
                        scanner.startScan(array, settings, scanCallback)
                        flowViewModel.refreshDevice()
                        handler.postDelayed({
                            scanner.stopScan(scanCallback)
                            flowViewModel.connect(
                                device,
                                AppPreferences.bluetoothName ?: "",
                                address
                            )
                        }, 600)
                    }

app有没有做保活?息屏期间你的蓝牙服务还在运行吗?

这个各大手机厂商的限制后台都不太一样,目前一般是考虑前台service进行处理,但需要用户不清理后台才能实现你想要的效果,可以引导用户开启后台运行的权限,但有一点是需要注意的,如果用户不想接收你的消息,即时你代码怎么改用户都有方法拒绝你的推送,这应该就是android平台目前的政策

这个是 经测试 在 华为手机上 鸿蒙os 就会出现