c# - 如何在锁定屏幕的背景下运行蓝牙 Le 扫描
问题描述
在 iOS 上,在后台模式下(例如关闭屏幕)我想每 30 分钟进行一次蓝牙扫描,以获取来自蓝牙 LE 设备的广告数据。
在 Visual Studio 中,在 info.plist 文件中,我激活了“启用后台模式”以能够运行后台进程,然后“使用蓝牙 LE 附件”,但我不知道该怎么做......
我也尝试过使用“后台获取”,但这仅在 iOS 需要时才会提出......所以它不适合我的需要。
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);
return true;
}
public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler)
{
//do job
completionHandler(UIBackgroundFetchResult.NewData);
}
步骤再现
1.打开我的应用
2.锁屏
3.30分钟后,应用程序(在服务中)进行扫描并从蓝牙LE广播数据中获取数据
预期结果:从我的 BluetoothLe 设备获取广告数据(没有连接)
解决方案
推荐阅读
- ios - 为什么在动画期间引用 CALayer 父视图的属性为“nil”
- javascript - For循环使用带有传递参数的函数调用的长度,什么属性提供长度值?
- java - 如何在 Spring JAVA(JPA/Hibernate)中映射 MySQL 时间戳字段
- azure - 如何通过服务总线消息触发 Azure 函数并将消息输出到单个 Azure 函数中的服务总线
- python - InvalidSchema("No connection adapters were found for {!r}".format(url)) 在使用 ConfigParser 解析的请求模块上的 URL 时
- android - 如何在 xml 中设置 RecyclerView 的最大高度?
- ios - 如何在 Swift 中舍入 UITextField 的 topRight 和 bottomLeft 角
- oracle - 发生触发错误的位置 -oracle mutating error
- c# - 从 c# 中的动态数据类型转换为 .net 对象
- shell - 使用带有 gfind 的 GNU 并行命令来获得 gupdatedb 工具的运行时间