ios – 如何检测手机何时放下

ios – 如何检测手机何时放下,第1张

概述我想在手机静止2秒钟时进行动作.我搜索了谷歌和堆栈溢出周围的年龄.我发现“Accelerometer DidAccelerate”已被折旧,而CoreMotion则是替代品.我所看到的一切都与“颤抖”动作有关.我试过阅读苹果的文档,但这让我很困惑! 基本上,我希望应用程序能够检测到手机上的g-force在一段时间内保持在一个小的限制范围内(建议将手机放在桌子上或其他东西上)以及它的呼叫和实例或让应 我想在手机静止2秒钟时进行动作.我搜索了谷歌和堆栈溢出周围的年龄.我发现“Accelerometer DIDAccelerate”已被折旧,而CoreMotion则是替代品.我所看到的一切都与“颤抖”动作有关.我试过阅读苹果的文档,但这让我很困惑!

基本上,我希望应用程序能够检测到手机上的g-force在一段时间内保持在一个小的限制范围内(建议将手机放在桌子上或其他东西上)以及它的呼叫和实例或让应用程序做一些事情.

任何帮助将不胜感激.

解决方法 它与 Simple iPhone motion detect中描述的问题类似.CMM Pollard在他的评论中所述的Apple文档中描述了cmmotionmanager的基本设置.我特别推荐 Handling Processed Device Motion Data部分.

你需要的是CMDeviceMotion.userAcceleration,它包含没有重力的纯加速度.

cmmotionmanager *motionManager = [[cmmotionmanager alloc] init];// UPDATE: set interval to 0.02 secmotionManager.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.

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

总结

以上是内存溢出为你收集整理的ios – 如何检测手机何时放下全部内容,希望文章能够帮你解决ios – 如何检测手机何时放下所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1027720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存