我搜索一种方式来检测手机的移动,无论用户如何握住手机.

一些例子:

>我对垂直运动感兴趣(像使用者拉起手机),如果电话放在桌子上,或者握在手上(可能是颠倒的话),那么“忽略”.
>也有兴趣的水平运动(像用户把手机远离身体)也“忽视”用户如何持有电话.

背景是我想要识别用户是否将手机拉出口袋(如拉长30-40厘米,水平方向也有一厘米).

我认为我必须从useracceleration和态度中获得一个组合.但是我没有找到正确的数学.

解决方法

不确定你的意思是“正确的数学”.但是,我会读出加速度计,并总结所有3个方向(x / y / z)的绝对值.这将为您提供一个单独的数字加速,独立于手机的方向或运动的方向.

更好的是计算RMS加速度,即求和x / y / z加速度的平方,并计算和的平方根.

这种方法的明显缺点是它没有给出关于运动方向的信息.您可以添加一些阈值或滤波来区分单个线性运动与振动(例如,通过测量两个加速事件之间的时间).

此外,您可以确定高度的变化(这与电话方向无关),但我怀疑是否可以精确地测量30 … 40厘米的差异.

ios – 无论设备旋转检测运动的更多相关文章

  1. html5 canvas 实现光线沿不规则路径运动

    这篇文章主要介绍了html5 canvas 实现光线沿不规则路径运动,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用iOS 7获取后台步骤

    我正在开发一个应用程序,在其中我应该获得我在体育活动中所做的步骤数.我找到了这段代码:使用此代码,当iPhone的显示器打开时,它工作得很好,但是当我关闭显示器时,它不再起作用.为了跟踪位置,我在iOS7中看到了一个功能“后台模式”.使用此功能,我可以在iPhone显示屏关闭时获取坐标.现在我要在显示器关闭时获取加速度计值,我该怎么做?我在网上看到iOS不允许在后台模式下使用加速度计,我如何在后台模式下使用加速度计来计算步数?

  3. iOS自由落体了解iphone的加速度计数据

    为什么当我将手机从大约4英尺放到枕头上,然后绘制用户加速度的大小时,我得到的峰值为1.5g然后是1g然后是2.5g然后是1g然后是2.5g然后是1g时间范围内的0g自由落体,有10个样本.理想情况下,由于重力减去空气阻力,它应该以恒定速率向下加速,那么为什么加速度会在自由落体时上下波动?是什么导致了这种噪音?

  4. 如何在IOS中获取加速度计数据?

    我正在使用UIAccelerotmeterDelegate方法accelerometer:didAccelerate:,但最近该方法已经在iOS5.0中弃用.那么获取加速度计数据的另一种方法是什么?文档没有提到我们应该使用的替代方法.解决方法您应该使用CoreMotionframework(在iOS4.0中引入)作为替代.创建一个cmmotionmanager的实例,并告诉它startAccele

  5. Swift教程13-字典Dictionary与NSDictionary

    与Oc的字典不太一样,Swift的字典不仅可以存储对象类型的值,还可以存储基本数据类型值,结构体,枚举值;Swift字典的使用方式也更加简洁,功能更加强大.字典本质上也是结构体,查看文档可以看到:可以看到字典的key必须是实现了Hashable协议的类型;也就是说key的类型不仅限于字符串!

  6. Swift之加速度传感器编程

    一:加速度核心类:首先需要创建一个加速度核心类MotionClass,导入CoreMotion核心类的创建思路是:1.需要创建一个单例,获取到加速度cmmotionmanager实例。然后调用相应的start或stop方法即可

  7. Swift - 加速传感器CoreMotion的用法,小球加速运动并反弹样例

    使用startAccelerometerUpdatesToQueue方法更新监听队列,并设置回调函数用于接受加速度通知。2,通知频率设置建议accelerometerUpdateInterval表示通知频率,表示间隔多少秒通知一次。一个是重力加速度,一个是用户对手机施加的加速度。所以当手机垂直静止时,虽然Useracceleration是0,但由于有重力加速度,所以两个合成后加速度y属性便是为负值。6,测试样例该应用运行后,将在画面正中央显示一个球体。倾斜手机时,球体将向着倾斜的方向运动。碰撞到四壁后反弹

  8. 2.4 Swift数学运算符号

    /**2.4Swift数学运算符号*/letv=3+5print(v)letd=v*3print(d)///UInt8是最大255,溢出了//letv1:UInt8=255+6//print(v1)letv2:UInt8=255letv3:UInt8=100//这个也是溢出的,swift中要注意溢出的overflow//letd1:UInt8=v2+v3//print(d1)//允许2.5后面的是

  9. Swift中的数学函数

    我已经经历了文档,但似乎找不到答案。如何使用数学函数,如sqrt(),floor(),round(),sin()等等?正如其他注释,你有几个选择。如果你只想要数学函数。您只能导入达尔文。如果你想要一切和类的用户界面,这取决于你的游乐场是OSX或iOS。对于iOS,您需要导入UIKit。您可以通过打开文件检查器轻松地发现您的游乐场平台。

  10. swift – 如何设置圆的物理属性,使其遵循给定的路径

    物理体圈的运动对于我想要达到的目标来说太不稳定了.我想限制它,以便它遵循某个特定点的路径,如下图所示.如何设置物理属性以遍历类似的路径?

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部