2017-09-04 90 views
0

我的应用程序与外部附件通信,但似乎存在一个错误,即当ios设备从睡眠中回来时,有时EAAccessoryManager列表为空。该应用程序已经在现场,我需要修复,因为目前用户必须关闭外部附件并再次开启。防止iOS应用程序进入睡眠状态,但保留锁定屏幕和屏幕变暗

我想防止iOS设备进入睡眠状态。不过,我不希望LCD屏幕始终打开,否则会导致电池电量耗尽。为了安全起见,我还希望启用锁定屏幕。我有什么选择?

Btw EAAccessoryManager列表通常在设备唤醒并且用户必须输入解锁代码后为空。似乎如果我使用指纹,它是好的,所以相信这是在iOS 10.3.3中的错误?任何其他人遇到这个?

回答

0

我敢肯定它不可能阻止设备进入睡眠状态,如果它已经显示锁定屏幕。由于锁屏是一种你完全不能控制的系统。

但是,您可能可以通过为您的应用实施背景模式来解决您的问题。

Apple允许使用外部附件的应用程序在后台继续运行,这意味着您的应用应该能够保持连接到您的配件,执行它应该做的任何事情。顺便说一句,我不确定EAAccessoryManager,但是当我使用BLE实现类似的东西时,我注意到扫描并不显示附件,如果它已经连接到它可以发现。你确定它尚未连接,这是为什么它显示一个空列表?

我注意到的其他事情是,通过保存它的UUID,我可以简单地让我的设备连接到它,而不管它是否做广告。即使设备已关闭。这将导致当设备打开时,我的设备会自动连接到它(没有我发送“连接”消息)

+0

感谢staight在我发布这个问题后,我发现将UIBackgroundModes设置为external-accessory可以解决我的问题。我不确定这是否是所有外部附件都需要的,但是如果有人遇到同样的问题 – rukiman

0

感谢staight我发布问题后,我发现设置UIBackgroundModes到外部配件做了伎俩并解决了我的问题。我不确定这是否是所有外部配件都需要的,但是如果有人遇到同样的问题。

必须注意的是,我的应用程序实际上并不需要在后台使用外部设备,但至少可以解决问题,并按预期屏幕暗淡屏幕锁定。

+0

结果发现iOS 10.x中存在一个错误 – rukiman