はじめに
watchOS 10ではHigh Frequency Motion API
が使えるようになりましたが、どのAppleWatchを購入すれば使えるのか分からず困っていました。
どの端末を購入すればwatchOS 10.0+
で使えるCMBatchedSensorManager
で正常に値が取れるかどうか、技術仕様を確認することに。
ちなみに、Appleのサイトには以下のように記載がありました。
ジャイロスコープと加速度センサーがさらに改善されたApple Watch Series 8とUltraでは、高周波データにアクセスして方向や加速度の急な変化を検出できます。

少なくともApple Watch Series 8
とUltra
では使えそうです。
WWDC23のWhat’s new in Core Motion
でも一部触れられていましたが、どのモデルが対応するのかまでは分からずです。
調べた結果
技術仕様を確認したところ高重力加速度センサー
と書かれていれば使えそうです。
現在購入できるApple Watchでは使えそうですが、Apple Watch Series 7
では加速度センサー
となっていて使えないのではないかと思います。
以下、技術仕様のリンクを載せておきます。
Apple Watch Series 9 - 技術仕様
センサー:
常時計測の高度計
高重力加速度センサー
ハイダイナミックレンジジャイロスコープ
Apple Watch Ultra 2 - 技術仕様
センサー:
常時計測の高度計
高重力加速度センサー
ハイダイナミックレンジジャイロスコープ
Apple Watch SE (第2世代) - 技術仕様
特徴:
高重力加速度センサー
最大256G(転倒検出と衝突事故検出対応)
ハイダイナミックレンジジャイロスコープ
過去のモデルの仕様を確認する
特長:
加速度センサー
最大32G(転倒検出対応)
ジャイロスコープ
特徴:
高重力加速度センサー
最大256G(転倒検出と衝突事故検出対応)
ハイダイナミックレンジジャイロスコープ
特徴:
高重力加速度センサー
最大256G(転倒検出と衝突事故検出対応)
ハイダイナミックレンジジャイロスコープ
実際に購入した端末での動作確認
Apple Watch SE (第2世代)
を購入して動かしてみました
サポート自体は問題なくしていそうです
CMBatchedSensorManager.authorizationStatus // authorized
CMBatchedSensorManager.isDeviceMotionSupported // true
CMBatchedSensorManager.isAccelerometerSupported //true
let sensor = CMBatchedSensorManager()
sensor.deviceMotionDataFrequency // 200
sensor.accelerometerDataFrequency // 800
しかし、フォーラムのコメントでもあるように
sensor.startDeviceMotionUpdates
sensor.startAccelerometerUpdates
でError Domain=CMErrorDomain Code=109
となりデータが取得できませんでした。
試した環境
Xcode 15.0 Beta7(15A5229h)
Xcode 15.1 Beta(15C5028h)
Xcode 15.1(15C65)
Xcodeのバグのようでもありますが、私の手元では今でも発生しているようでした。
今後使えるようになったら(問題の解消方法が分かったら)この記事も更新するようにします🙏
おわりに
MBatchedSensorManager
をサポートしているモデルはわかりましたが、ドキュメントもまだ整備されていないようなので様子を見ながら引き続き調べていこうと思います
参考