iPhone 上的 CoreMotion 碰撞与震动

2024-03-02

我正在尝试检测用户何时将 iPhone 撞到另一个物体上,以及何时只是摇晃手机。我似乎无法让它按照我想要的方式完美工作,因为它要么记录太多颠簸,要么没有颠簸,或者认为摇晃就是颠簸。

有人可以看看我下面的代码并提供建议吗?我需要确保其中之一发生。

// SHAKING
- (void) motionEnded: (UIEventSubtype) motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
    [self setNumberOfShakes: [self numberOfShakes] + 1];
    [self reloadAllTapShakeData];
}
}

// TAPPING & BUMPING
- (void) setupAccelerometerMonitoring
{
[self setManager: [[CMMotionManager alloc] init]];
if ([[self manager] isDeviceMotionAvailable])
{
    [[self manager] setDeviceMotionUpdateInterval: 0.02];
    [[self manager] startDeviceMotionUpdatesToQueue: [NSOperationQueue mainQueue] withHandler: ^(CMDeviceMotion * _Nullable motion, NSError * _Nullable error)
    {
        //NSLog(@"x = %f | y = %f | z = %f", [motion userAcceleration].x, [motion userAcceleration].y, [motion userAcceleration].z);
        if (([motion userAcceleration].x > .50 && [motion userAcceleration].x < 1)
            || ([motion userAcceleration].y > .70 && [motion userAcceleration].x < 1)
            || ([motion userAcceleration].z > .80 && [motion userAcceleration].z < 1))
        {
            NSLog(@"TAPPED ON ANOTHER OBJECT");
        }
    }];
}

}


我确信这是一个不同的答案,但这可能会对您有所帮助。

https://github.com/bumptech/bump-api-ios https://github.com/bumptech/bump-api-ios

它有一个块功能,例如

[[BumpClient sharedClient] setBumpEventBlock:^(bump_event event) {
        switch(event) {
            case BUMP_EVENT_BUMP:
                NSLog(@"Bump detected.");
                break;
            case BUMP_EVENT_NO_MATCH:
                NSLog(@"No match.");
                break;
     }
 }];

如需完整示例,请查看 git。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 上的 CoreMotion 碰撞与震动 的相关文章

  • 启动使用 Simperium 的应用程序时 objectFromJSONString 崩溃

    我得到了一个JSON当我尝试启动使用 Simperium 框架的应用程序时崩溃 NSCFString objectFromJSONString unrecognized selector sent to instance 0x6c561a0
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • UIView 重写drawRect 导致视图不遵守maskToBounds

    我正在尝试覆盖drawRect 我的自定义视图中的 UIView 方法 但是 我的视图的边界半径定义为 sub NSBundle mainBundle loadNibNamed ProfileView owner self options
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • React Native ios运行问题

    我是反应本机和运行新手yarn ios我的 React Native 项目不断失败并出现以下错误 构建失败 以下构建命令失败 编译C Users gift Library Developer Xcode DerivedData gainer
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • 具有透明背景的 Swift 模态视图控制器 [重复]

    这个问题在这里已经有答案了 我知道这个话题很受欢迎 但我在编程语言中遇到了一些问题 事实是我仍然不明白我把代码放在哪里 好吧 我就来说说整个案子 我正在尝试制作一个与正常情况稍有不同的模态 Swift 通过单击按钮 ViewControll
  • 如何将 NSDate 转换为 NSString?

    我想将 NSDate 转换为 NSString 这怎么可能 我尝试了这个 但它不起作用 它正在生成异常 NSString dateToString NSString alloc initWithFormat NSString dateObj
  • 如何在 Xamarin.iOS 应用程序中创建导航?

    我习惯于与Xamarin Forms 我用 XAML 或 C 创建一个页面并导航到它 但现在这是我第一次尝试创建一个不适合的 iOS 应用程序Xamarin Forms 我在 Windows PC 上的 Visual Studio 中进行此
  • 如何在 iOS 中设置视图的最大宽度?

    我的应用程序有一个基本的登录屏幕 一个外框以及其中的一些文本字段和按钮 我将框设置为填满屏幕 然而 在某些设备上这个盒子会太大 如何设置视图的最大宽度和高度 您可以使用自动布局约束 使框适应屏幕尺寸 但不超过给定的宽度和高度 为此 请对宽度
  • 如何将数据从一个视图传递到下一个视图?

    我正在制作一个下载排队系统来下载视频 处理下载的排队代码位于另一个视图控制器中 现在我的问题是如何将下载的 URL 传递到另一个视图而不推送到另一个视图控制器 如下所示 ViewConntroller View ViewConntrolle
  • 如何使自定义绘制的 UITableViewCell 正确调整大小?

    出于性能原因 我在自定义视图中绘制 UITableViewCell 的字符串 该视图重写其 drawRect 方法 以使用 NSString drawInRect 直接在视图矩形中绘制字符串 这类似于 Apple 的 TableViewSu
  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • [[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

    仍在学习 Objective C iPhone SDK 我想我知道为什么这不起作用 但我只是想确认一下 In awakeFromNib 如果我使用 NSMutableDictionary alloc initWithObjects 它实际上
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • SwiftUI - 从 NSObject 继承的 ObservableObject 在 iOS 13 中不会更新

    我知道 这是 无法在 iOS XX 中工作 问题之一 但我完全陷入困境 所以我有一个ObservableObject继承自的类NSObject 因为我需要听委托方法UISearchResultsUpdating class SearchBa
  • iOS 键盘显示后分屏宽度

    我刚刚开始研究 Cordova 应用程序对分屏多任务处理的支持 到目前为止 该应用程序在模拟器中的 iPad 上显示和调整大小都很好 但是当我单击编辑字段并显示软件键盘时 100 宽度的值开始返回整个屏幕 而不是给出的窗口 初始显示 到目前
  • 在移动网站中处理 iPhone 事件(如向左滑动)

    iPhone 浏览器是否有可以使用 Javascript 挂钩的特殊事件 例如 如果用户向左滑动 我想执行某个操作 如果有类似的活动 很高兴看到所有这些活动的参考 理想情况下 有一天所有触摸屏移动浏览器都会有一个标准 您可以访问多点触控事件
  • GoogleSignIn ios 附加到谷歌表格

    我目前正在开发一个 iOS 应用程序 该应用程序需要写入登录用户拥有的 Google 工作表 要登录我正在使用的用户GoogleSignInpod 并附加到我正在使用的谷歌表GoogleAPIClientForREST Sheets pod
  • 是否可以在增强现实应用程序中使用自定义 iOS UI 元素(例如 UILabel)

    我想知道是否可以使用像这样的 UI 元素UIButton UILabel在带有 ARKit 的增强现实应用程序中 如果您也对 UIView 子类的透明度模式感兴趣 请尝试我的示例https github com erikhric ar me

随机推荐

  • 在 shell 中导出函数

    请告诉我如何在父 shell bash sh 或 ksh 中导出函数 以便该函数可供从父进程启动的所有子进程使用 The export fBash 特有的功能 parent bin bash plus1 echo 1 1 echo plus
  • 无法在 Windows 计算机上安装 sasl-0.1.3 python 包

    我正在尝试在 Windows 7 64 位机器 上安装 sasl 0 1 3 python 包 它出现 C1083 致命错误 看起来 saslwrapper cpp 无法在 c 模块中包含 sasl sasl h 库 请帮助我解决问题 如果
  • boost::32 和 64 位进程之间的进程间共享内存

    我试图让 boost interprocess 在 32 位和 64 位进程之间共享内存 此错误跟踪器条目 https svn boost org trac boost ticket 5230表明这在我使用的 Boost 1 49 中可能是
  • 在模板中表达左移或右移的优雅方式

    我目前有一个模板函数 根据其模板参数 A 和 B 可以向左或向右移动值 template
  • 以编程方式设置 MailItem 的后续标志来完成?

    我试图找出如何在 Outlook 2007 中通过 VBA 将 MailItem 的后续标志设置为完成 谷歌搜索返回了大量在 Outlook 2003 及之前版本中有效的方法 例如 更改 MailItem 的 FlagStatus 属性的值
  • 如何处理静态存储持续时间警告?

    我是一个试图从书本上学习 C 的新手 下面的代码可以正常工作并产生预期的输出 但是定义的两行有警告engine and randomInt 使用静态存储持续时间初始化 引擎 可能会引发无法捕获的异常 如果我将第 7 行和第 8 行放在mai
  • .NET 错误关闭串口 BaseStream 错误仅在端口打开时出现

    我正在使用 NET System IO Ports SerialPort 并按照本文中的建议使用 BaseStreamIf you must使用 NET System IO Ports SerialPort http www sparxen
  • 对角块矩阵行之间的组合列表

    我有以下 R 矩阵 它是 2x3 和 3x3 子矩阵的组合 它可以是 2 个以上具有不同维度的子矩阵 例如 m1xp 和 m2xp 和 m3xp 其中 m1 m2 m3 A2 lt list rbind c 1 1 1 c 1 1 1 rb
  • 曲面细分的理论和算法

    我有以下问题 以下是我在屏幕上绘制立方体的方法 void drawCube glClear GL COLOR BUFFER BIT GL DEPTH BUFFER BIT Clear color and depth buffers glPu
  • A* 寻路不采用最短路径

    我的 A 寻路功能总是能到达预期目的地 但它几乎总是有点偏离路线 这是一个例子 我制作了一张漂亮的图片来展示我的问题 但显然直到我的声誉达到 10 后它才会发布 抱歉 我是新人 P 本质上 它会尽可能向左或向上拉动 而不实际向路径添加更多图
  • ggplot:如何用箭头连接图表中的某些条形

    目前我正在复制 更新海报演示的某些图形 我成功地复制了图形的颜色 值 条形样式和背景 但是缺少一个箭头标签 突出显示了值差异 我想知道是否有通过 ggplot 线条或箭头 的有用选项 值得付出努力 或者我必须用另一个图形软件绘制一些箭头 这
  • 到凸包的距离

    我一直在寻找一种方法来计算到凸包 多边形的距离 如果该点在包内 则距离为正 如果在包外 则距离为负 例如 给定一个船体和一组点 可以计算正 负距离吗 from scipy spatial import ConvexHull import m
  • 如何将 Solr 索引转储/备份到文件?

    我正在运行一个虚拟专用服务器 每天午夜 所有文件都会自动备份由 VPS 提供商提供 所以我需要exportSolr 索引到文件 这样如果有一天出现问题 我将能够import它轻松返回到 Solr 我怎样才能做到这一点 Solr 数据库是一个
  • 使用 QLabel 在 PyQt GUI 中显示 gif

    我试图在按下按钮后显示加载 gif 这是我目前拥有的代码 import sys from PyQt4 import QtGui QtCore from PyQt4 QtCore import from PyQt4 QtGui import
  • 子进程 check_output 返回非零退出状态 1

    这是我的Python代码 import subprocess subprocess check output ls shell True stderr subprocess STDOUT import subprocess subproce
  • 如何知道文字的方向?

    在 UITextView 中输入时 我需要根据键盘的语言了解文本的方向 例如 如果用户输入英语 则方向将为 从左到右 如果用户输入阿拉伯语 则方向将为 从右到左 我毫无疑问地需要这个值 并避免对每种语言及其文本方向之间的匹配进行硬编码 这可
  • LESSCHARSET=utf-8 less 似乎不起作用

    我正在尝试查看 UTF 8 文本文件 流less 即使我像这样调用它 cat file LESSCHARSET utf 8 less 非 ASCII 兼容的 UTF 8 字符无法正确显示 相反 它们的十六进制值在括号中突出显示 例如
  • Java 构建路径 - 添加外部 JAR 并添加变量

    Java 构建路径 添加外部 JAR 按钮和添加变量按钮功能之间有什么区别 为什么需要它 请详细解释一下 两者都可以用来实现相同的目标 将 JAR 添加到构建路径中 假设您有一个项目 P1 想要使用供应商 S1 安装的 JAR 该 JAR
  • Java 8 过滤器映射 >

    如何过滤一个Map
  • iPhone 上的 CoreMotion 碰撞与震动

    我正在尝试检测用户何时将 iPhone 撞到另一个物体上 以及何时只是摇晃手机 我似乎无法让它按照我想要的方式完美工作 因为它要么记录太多颠簸 要么没有颠簸 或者认为摇晃就是颠簸 有人可以看看我下面的代码并提供建议吗 我需要确保其中之一发生