Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 可重复扫描_Android_Bluetooth_Bluetooth Lowenergy_Alarmmanager_Android Ble - Fatal编程技术网

Android 可重复扫描

Android 可重复扫描,android,bluetooth,bluetooth-lowenergy,alarmmanager,android-ble,Android,Bluetooth,Bluetooth Lowenergy,Alarmmanager,Android Ble,我有一个可调节的温度计,每5秒准确地显示一次当前温度 我想为我的Android 9手机(小米)编写一个应用程序(服务),它将执行周期性的BLE扫描,至少每2分钟读取一次温度,即使在手机处于睡眠模式(屏幕关闭)时也会出现基于温度的警报,从温度达到目标时起,警报必须以最长2分钟的延迟触发 我读过关于JobScheduler、AlarmManager等的文章,但看起来当Android设备处于睡眠模式时,它可能会非常不规则地触发事件,这意味着我的2分钟期限将无法满足 您能为我提供解决方案吗?或者我应该忘

我有一个可调节的温度计,每5秒准确地显示一次当前温度

我想为我的Android 9手机(小米)编写一个应用程序(服务),它将执行周期性的BLE扫描,至少每2分钟读取一次温度,即使在手机处于睡眠模式(屏幕关闭)时也会出现基于温度的警报,从温度达到目标时起,警报必须以最长2分钟的延迟触发

我读过关于JobScheduler、AlarmManager等的文章,但看起来当Android设备处于睡眠模式时,它可能会非常不规则地触发事件,这意味着我的2分钟期限将无法满足


您能为我提供解决方案吗?或者我应该忘记这一点,因为Android设备不合适?

您可能需要一直运行前台服务,不过祝小米手机好运。是的,我知道我必须运行前台服务。但是,如何安排我的2分钟ble扫描,以便即使在手机处于睡眠模式时也不会丢失ble扫描?同时,我当然想最大限度地延长电池寿命。如果我没记错的话,JobScheduler有一个15分钟的帧,所以它被淘汰了。AlarmManager是一个很好的候选者,可能有空闲方法,但一些制造商不允许它们在空闲或打瞌睡时运行。我的建议是打开应用程序,启动前台服务,处理你自己的逻辑,每两分钟扫描一次。(见:)这种“逻辑”应该是什么样子?这是我第一次尝试Handler.postdayed或Timer.schedule,当然这些都是游戏之外的。几小时后,我的手机处于空闲状态,ble扫描仅会启动,例如,每小时一次。我还尝试在MIUI中禁用我的应用程序的所有电池优化功能(我在Android 9上有MIUI11,设置看起来与dontkillmyapp.com不同)