Flutter Bluetooth Background Mode iOS -保持应用程序活动,收听BLE特征通知

ut6juiuv  于 2023-03-13  发布在  Flutter
关注(0)|答案(1)|浏览(164)

事实上,我对Flutter和移动的应用程序开发还很陌生。目前我正在Flutter中开发一个应用程序,从传感器接收数据,通过BLE连接(flutter_blue_plus)到移动终端。现在我的iOS出现了问题,它一直在杀死我的应用程序,只要它进入后台模式(锁屏或最小化)。我尝试了很多不同的方法(flutter_background_service等),但到目前为止都不起作用,有了flutter_background_service,应用程序在进入后台模式后大约20秒就被杀死了。我在网上找不到明确的信息,如果使用Flutter时,甚至有可能让应用程序在iOS上保持活跃的话。我发现关于这一点的说法非常矛盾。
非常感谢和最好的React
我尝试了很多不同的方法(flutter_background_services,等等),但是到目前为止没有一个有效。使用flutter_background_service,应用程序在进入后台模式后大约20秒就被杀死了。

py49o6xq

py49o6xq1#

很高兴看到新的Flutter开发人员与BLE合作;)

信息列表更改

尝试将此更改添加到您的Info.plist文件(在ios/Runner/Info.plist中找到)。它可能会起作用。

<key>NSBluetoothAlwaysUsageDescription</key>
<string>The app uses bluetooth to find, connect and transfer data between different devices</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>The app uses bluetooth to find, connect and transfer data between different devices</string>
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
</array>

注意:添加这个之后,明智的做法是运行flutter clean,然后完全重新启动并重新安装设备上的应用程序,因为这会影响底层配置。
来源:这是对GitHub repo的BLE库的评论。它是一个与你使用的不同的库,但它给出了这个文件如何工作的线索。
如果你想深入了解iOS和蓝牙here是他们关于这方面的官方(和复杂的)文档。

替代解决方案

如果你想逃避睡眠一般:考虑添加一个唤醒锁。请参见wakelock package

相关问题