【问题标题】:CMMotionActivityManager is unable to detect Automotive modeCMMotionActivityManager 无法检测汽车模式
【发布时间】:2016-05-31 06:12:01
【问题描述】:

我正在使用 Core Motion Framework 来检测设备活动。

即步行、跑步、汽车、静止

主要问题是我能够非常准确地检测步行和跑步,但我的设备无法检测到汽车模式。

这是我的代码

var motionActivityManager: CMMotionActivityManager?
if CMMotionActivityManager.isActivityAvailable() {
            motionActivityManager?.startActivityUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: {
                activityData
                in
                if activityData!.walking == true {
                    self.lblActivityStatus?.text = "Walking"
                } else if activityData!.running == true {
                    self.lblActivityStatus?.text = "Running"
                } else if activityData!.automotive == true {
                    self.lblActivityStatus?.text = "Automotive"
                } else if activityData!.stationary == true {
                    self.lblActivityStatus?.text = "Stationary"
                }
                print("Activity Data: ", activityData)
            })
        }

【问题讨论】:

  • 您确定您的手机处于汽车模式吗? (可能它只是没有检测到它)
  • 是的,我在开车的时候试过了。它显示静止或行走。
  • 仅仅因为你在开车,并不意味着手机能正确检测到这一点。如果手机正确检测到它,您是否与另一个应用程序进行了交叉检查?
  • 是的,我已经尝试了很多来自 git 的库,例如 github.com/AmbientStatus/AmbientStatus
  • 我的主要目标是仅使用硬件检测驾驶模式,而不是使用定位服务来解决电池消耗问题。

标签: ios iphone xcode xcode7 core-motion


【解决方案1】:

我终于通过在多台设备上测试同一个应用得到了答案。 第一代设备上的 m7 芯片在“汽车”模式下无法正常工作。 当我在 5s 和 ipad air 上进行测试时,它没有检测到应该检测到的汽车模式。但是用 iphone 6 Plus 测试相同的应用程序,它运行良好。 所以问题出在设备而不是框架上。

【讨论】:

  • 如何检测代码中的iphone版本(即iPhone 5s或ipad air)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多