gpt4 book ai didi

ios - 当应用程序进入后台 IOS 时保持加速度计运行

转载 作者:可可西里 更新时间:2023-11-01 06:11:20 24 4
gpt4 key购买 nike

我在 IOS 中使用加速度计,我希望它在后台模式下运行。

我试过像这样使用 CMMotionManager 但它不起作用:

CMMotionManager*manager= [[CMMotionManager alloc] init];
if(!manager.accelerometerAvailable) {
NSLog(@"Accelerometer not available");
} else {
manager.accelerometerUpdateInterval = 0.1;
NSOperationQueue *motionQueue = [[NSOperationQueue alloc] init];

[manager startAccelerometerUpdatesToQueue: motionQueue withHandler:
^(CMAccelerometerData *data, NSError *error) {
NSLog(@"Accelerometer data: %@", [data description]);
}
];
}

我该怎么做?

最佳答案

不确定这是否能解决您的问题,但看一眼文档 ( http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html) 会说:

“实现长时间运行的后台任务

对于需要更多执行时间才能执行的任务,您必须请求特定权限才能在后台运行它们而不会被挂起。在 iOS 中,只允许特定类型的应用程序在后台运行:

  1. 在后台向用户播放音频内容的应用,例如音乐播放器应用

  2. 让用户随时了解其位置的应用,例如导航应用

  3. 支持互联网协议(protocol)语音 (VoIP) 的应用

  4. 需要下载和处理新内容的报亭应用

  5. 从外部配件接收定期更新的应用

实现这些服务的应用程序必须声明它们支持的服务并使用系统框架来实现这些服务的相关方面。声明服务让系统知道您使用了哪些服务,但在某些情况下,实际上是系统框架阻止了您的应用程序被挂起。”

不确定您是否正在尝试使用加速度计来执行任何这些操作(也许与蓝牙设备通信?),但如果是这样,您需要在应用中声明您支持的服务。为此,您需要将 UIBackgroundModes 键添加到您的 Info.plist,然后添加一个包含您尝试使用的服务的相关字符串的数组。有关字符串的完整列表,请参阅上面链接的文档页面。

如果您尝试使用加速度计来做任何这些事情,看起来您可能不走运。虽然我很想在那里错了..(有人吗?)

关于ios - 当应用程序进入后台 IOS 时保持加速度计运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com