首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电话屏幕关闭时对外围设备进行核心蓝牙扫描

在电话屏幕关闭时对外围设备进行核心蓝牙扫描
EN

Stack Overflow用户
提问于 2016-10-26 10:35:51
回答 1查看 923关注 0票数 0

当应用程序在后台和手机屏幕关闭时,我需要不断扫描来自外围设备的广播。从后台扫描成功,但我无法在手机屏幕关闭时扫描(无法触发didDiscoverPeripheral)广播。

到目前为止,我已经在applicationDidEnterBackground中实现了beginBackgroundTaskWithExpirationHandler,这就是我能够在后台扫描的方式。那么我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2020-05-28 13:54:54

这是不可能的。当您勾选'Uses Bluetooth LE accessories''Acts as a Bluetooth LE accessory'时,当iPhone屏幕指示灯关闭时,核心蓝牙框架将停止广告和扫描。一旦屏幕灯重新亮起,它就会恢复广告/扫描。这是iOS中可能实现的最大方案。

如果你想更进一步,你可以使用beginBackgroundTaskWithExpirationHandler - https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtaskwithexpiratio,但这在3分钟内几乎不起作用。当应用程序从前台转到后台时,这3分钟就开始了。

为了节省电池,iOS似乎会自动关闭BLE硬件,一旦设备移动/屏幕唤醒,它就会重新打开。因为当屏幕关闭时,用户无论如何都不会使用iPhone。

编辑:除非连接了耳机之类的设备,否则现有的连接设备可以共享数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40252806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档