gpt4 book ai didi

ios - 如何检测手机何时被放下

转载 作者:可可西里 更新时间:2023-11-01 04:26:21 25 4
gpt4 key购买 nike

我想在手机静止 2 秒时执行一个操作。我已经在 google 和 stack overflow 周围搜索了很长时间。我发现“Accelerometer DidAccelerate”已贬值,CoreMotion 是替代品。我所看到的一切都与“摇晃” Action 有关。我试过阅读苹果的文档,但它让我很困惑!

基本上,我希望该应用程序检测到手机上的重力在一定时间内保持在一个小限度内(表明手机已放在 table 或其他东西上)并让它调用和实例化或让应用程序执行某些操作。

如有任何帮助,我们将不胜感激。

最佳答案

类似于Simple iPhone motion detect中描述的问题. CMMotionManager 的基本设置在 Apple 文档中有所描述,就像 Mike Pollard 在他的评论中所说的那样。我特别推荐 Handling Processed Device Motion Data部分。

然后你需要的是CMDeviceMotion.userAcceleration其中包含没有重力的纯加速度。

CMMotionManager *motionManager = [[CMMotionManager alloc] init];
// UPDATE: set interval to 0.02 sec
motionManager.deviceMotionUpdateInterval = 1.0 / 50.0;
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMDeviceMotion *deviceMotion, NSError *error) {
CMAcceleration userAcceleration = deviceMotion.userAcceleration;
double totalAcceleration = sqrt(userAcceleration.x * userAcceleration.x +
userAcceleration.y * userAcceleration.y + userAcceleration.z * userAcceleration.z);
// UPDATE: print debug information
NSLog (@"total=%f x=%f y=%f z=%f", totalAcceleration, userAcceleration.x, userAcceleration.y, userAcceleration.z);
// if(totalAcceleration < SOME_LIMIT) ...

然后像 codeplasma 描述的那样继续 in his answer above .

另请注意,如果在地下、公共(public)汽车等环境中使用,由于外部加速度,解决方案可能不准确。

关于ios - 如何检测手机何时被放下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16812365/

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