如何使用swift获取磁力计数据?

2023-12-26

我正在尝试使用 CoreMotion 从我的 iphone 6 获取磁场数据。

我使用以下代码访问原始数据没有任何问题:

if available {
        motionMangager.magnetometerUpdateInterval = updateInterval
        motionMangager.startMagnetometerUpdatesToQueue(queue, withHandler: {
            (data, error: NSError!) -> Void in
            println("x: \(data.magneticField.x), y: \(data.magneticField.y), z: \(data.magneticField.z)")
        })
    }

但是:我需要使用设备运动实例导出数据。

所以我做了以下事情:

if motionMangager.deviceMotionAvailable {
        motionMangager.magnetometerUpdateInterval = updateInterval
        motionMangager.startDeviceMotionUpdatesUsingReferenceFrame(CMAttitudeReferenceFrameXArbitraryZVertical, toQueue: queue, withHandler: {
            (deviceMotion: CMDeviceMotion!, error: NSError!) -> Void in
            // If no device-motion data is available, the value of this property is nil.
            if let motion = deviceMotion {
                println(motion)
                var accuracy = motion.magneticField.accuracy
                var x = motion.magneticField.field.x
                var y = motion.magneticField.field.y
                var z = motion.magneticField.field.z
                println("accuracy: \(accuracy.value), x: \(x), y: \(y), z: \(z)")
            }
            else {
                println("Device motion is nil.")
            }
        })
    }

问题是这样的:

我的场坐标 x、y 和 z 总是为零。准确度也是-1。根据 Apple 文档,精度为 -1 意味着“CMMagneticFieldCalibrationAccuracyUncaliblated”意味着“该设备没有磁力计”...但不是!这是一部 iPhone 6...

那么我做错了什么?我尝试了所有四个 CMAttitudeReferenceFrame。拜托,我需要帮助。有任何想法吗?


好吧..我解决了。

零的原因是未校准的磁力计!但这并不意味着没有像苹果文档中所述的磁力计。不管怎样,我从来没有预料到会这样。

我只需要添加指南针校准的功能。这很容易添加:

motionMangager.showsDeviceMovementDisplay = true

(See: https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMMotionManager_Class/ https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMMotionManager_Class/)

所以现在就像:当我得到零和 -1 的准确性时,会弹出要求校准的警报。移动后它消失了,我得到了正确的值。

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

如何使用swift获取磁力计数据? 的相关文章

  • 我如何从子视图导航到 mainviewcontroller

    我刚刚开始使用 swift 我创建了一个子视图 上面有一个按钮 我想使用该按钮将我带到我的主视图控制器 我对不同的按钮使用了相同的功能 但是在同一文件中具有一个功能允许该按钮工作 代码如下 var playAgainButton UIBut
  • 如何在IOS中的UIStackView中设置权重

    UIStackView与安卓类似LinearLayout但我不知道如何设置子视图的权重 假设我有一个垂直的UIStackView and 3 UIImageView就在里面 我想连续设置权重3 6 1UIImageViews 我怎么做 UI
  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • 从“NSPercientStoreResult”转换为不相关类型“Entity”总是失败

    我正在创建一个小应用程序来学习 CoreData 中的多对多关系 但是 使用下面的代码 从 NSFetchResult 到实体类 Groepering 的转换出现错误 与我的项目相比 我在互联网上找到的示例没有看到任何差异 为什么转换仍然失
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • 作为!与 Swift 中 Xcode 6.3 中的 as 运算符对比

    Xcode 6 3 使 Swift 发生了很大变化 我必须更换每个应用程序中的数十个位置as gt as 为什么 现在有什么规则 在 Swift 1 2 之前 as运算符可用于执行两种不同类型的转换 具体取决于要转换的表达式的类型及其要转换
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导

随机推荐

  • pm2 守护进程在几个小时后终止

    我有一个 Node js Express 应用程序 它实现了一组 REST API 并且我正在尝试使用 pm2 来管理其部署 该应用程序启动正常 使用pm2 start ecosystem config js 并保持可用几个小时 但 pm2
  • Bootstrap ScrollSpy 上的简单缓动

    我认为对于那些了解 javascript jquery 的人来说这是一个非常简单的问题 我对这一切都很陌生 无法做到 我发现计算导航栏偏移的代码如下所示 var offset 50 navbar li a click function ev
  • 如何强制列表对象输入“double”

    代码 a lt structure list X Days c 10 38 66 101 129 185 283 374 Names X Days Then a is like X Days 1 10 38 66 101 129 185 2
  • 使用 https 时基于主机的 nginx 代理

    我需要使用 Nginx 作为 SSL 代理 它根据子域将流量转发到不同的后端 我似乎到处都应该定义多个 server 部分 但这对于 SSL 来说不能正常工作 这样做时 我始终会在第一个虚拟主机中处理 SSL 因为在处理 https 流量之
  • 无法在 macOS Monterey 12.3 上安装 psycopg2-binary

    我一直在尝试为我的 django 项目安装 psycopg2 binary 但到目前为止没有任何效果 它不断要求pg config文件 据我所知 只有在构建 psycopg2 时才需要该文件 那么 这里发生了什么 Collecting ps
  • VS 2013 ASP.NET调试时无法修改代码

    我正在处理一个 ASP NET 2 0 项目 该项目已从 vs 2005 gt 2010 gt 2013 升级 在 vs 2005 和 2010 中 我可以在调试时修改代码 保存更改并重新加载应用了更改的页面 现在与 2013 年相比 我无
  • 在 C 中区分 typedef 的类型/标记名称有哪些优点?

    一些代码库使用不同的标识符tag和type eg typedef struct foo int bar foo 代替 typedef struct foo int bar foo 这里详细解释了这些差异 C 中 struct 和 typed
  • 在 R 中的 for 循环中创建列

    我在 R 中有一个数据框 我想在 for 循环中创建新列 在过去的两天里我尝试了很多事情但没有成功 最后 我确实找到了一个似乎可行的解决方案 但看起来并不那么直接 我想知道是否有人有更优雅的方法来做到这一点 抱歉 如果这个问题已经得到解决
  • 使用 D3.js 为每个数据成员附加多个非嵌套元素

    我想使用 d3 创建多个非嵌套元素来创建如下结构 div p from data 0 p p from data 0 p p from data 1 p p from data 1 p p from data 2 p p from data
  • TSQL - 如何判断 SQL 是否是集群的?

    有没有办法使用 TSQL CMD 脚本或 VB 脚本来告诉 1 如果 SQL Server 集群在服务器上 并且 2 是否是主动节点 Thanks 这两个都可以使用找到 SELECT FROM fn virtualservernodes 如
  • Tensorflow编译运行很长时间

    所以我正在尝试编译TensorFlow来自源头 使用 2019 年 1 月 31 日的 git 存储库中的克隆 我从他们的 shell 脚本安装了 Bazel https github com bazelbuild bazel releas
  • 根据第一列中的数字分割矩阵

    我有一个具有以下形式的矩阵 M 1 4 56 1 1 3 5 1 1 3 6 4 2 3 5 0 2 0 0 0 3 1 2 3 3 3 3 3 我想根据第一列中给出的数字分割这个矩阵 所以我想将矩阵拆分为 A 1 4 56 1 1 3 5
  • 如何取消 git bare 存储库中的最后一次提交?

    考虑到有几个 git 命令在裸存储库中没有任何意义 因为裸存储库不使用索引并且没有工作目录 git reset hard HEAD 不是取消提交此类存储库中最后更改的解决方案 通过互联网搜索 我能找到与该主题相关的所有内容this http
  • 通过 ADB 创建 AVD 配置文件

    有什么方法可以获取或查看所有设备的 Android 调试桥 Shell 中的属性 正如我所见 adb shell 仅显示和检索已连接的设备的当前会话的当前进程 我只是想知道有一个 adb shell 脚本命令可以查看该设备的所有技术产品信息
  • MSSQL Server Management Studio (SSMS) 2005 新查询模板

    如何更改 SSMS 2005 中的默认 新查询 模板 发布这个问题作为参考 我做了一些谷歌搜索 发现了一个简单的方法 http weblogs asp net cabhilash archive 2008 11 23 sql server
  • 双向绑定无法解析 setter

    我正在尝试了解数据绑定我有我的信用卡 ViewModel 类 它在我的片段中绑定 如下所示 public class CreditCardValidatorFragment extends Fragment private CreditCa
  • 如何自动获取本地时区的时区偏移量? [复制]

    这个问题在这里已经有答案了 我正在尝试自动获取本地时区偏移量 但遇到了麻烦 我试过了 print time timezone 3600 这会得到 当前错误的 偏移量 因为它不会自动调整夏令时和非夏令时 我也尝试过 now utc pytz
  • 将多个 pandas 数据框写入 Excel

    我正在尝试写多个pandasdataframes我从一个更大的数据集中提取到 Excel 工作簿的多个工作表中 问题是它只写入第一个数据帧 即index 0 因此生成的工作簿只有一个工作表 请参阅sheet1以下 我缺少什么 这是我的问题的
  • 一起滚动的水平列表视图列表 Flutter

    我想创建水平列表视图的垂直列表 我已经使用它实现了this https stackoverflow com questions 51089041 list of horizontal list in flutter 但我的问题是每个项目都单
  • 如何使用swift获取磁力计数据?

    我正在尝试使用 CoreMotion 从我的 iphone 6 获取磁场数据 我使用以下代码访问原始数据没有任何问题 if available motionMangager magnetometerUpdateInterval update