iPhone 如何通过 MFi 设备检测启动应用程序

How to detect launch app via MFi device on iPhone

有人可以告诉我 "How to detect launch app via MFi device on iPhone" 吗?

Apple 在 iOS13.
上宣布了新位置权限流程的几项重大更改 (https://gimbal.com/ios-13-location-permissions/)
如果要获取GPS信号,用户需要在使用中或一直select
并设置showsBackgroundLocationIndicator = YES,应用程序可以在后台获取GPS。

正常情况下效果很好(按移动屏幕上的图标启动)。
但是我发现如果通过MFi设备启动应用程序它无法接收GPS。
我还在 Apple 错误报告中报告了它(​​https://feedbackassistant.apple.com/feedback/7537501)
我有一个解决方法,但第一个是如何通过 iPhone.
上的 MFi 设备检测启动应用程序 顺便说一下,我也检查了 UIApplicationMain 的参数,但没有用。
请帮助或尝试提供一些关于如何实现这一目标的想法。谢谢!

测试步骤
1. 首次启动 & 用户接受定位权限
2.确认GPS可以使用&查看设置页面
3.强制关闭应用程序
4. 插上灯,通过MFi设备启动

回答我的最终解决方案。

我发现如果应用程序通过 MFi 设备启动,初始流程将进入 applicationDidEnterBackground 而不是 运行 applicationDidBecomeActive.所以,我只是添加了一个标志来记录它并检测 EAAccessory 状态。

分享给有同样问题的人。希望这能有所帮助。

iOS 15可以使用CLLocation的sourceInfo(CLLocationSourceInformation)来判断位置信息是来自Xcode还是MFI.