問題タブ [apple-m7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iOS CMStepCounter & CMMotionActivityManager
と を使用CMStepCounter
してCMMotionActivityManager
います。
私がやりたいことは、1 日を通しての総歩行時間を計算し、これから平均速度を計算することです。
ただし、 のデータを見ると、CMMotionActivityManager
ウォーキングやランニング以外の「不明なアクティビティ」の期間に、1 日を通して多くの歩数が実際に記録されていることは明らかです。iOS が歩いていることを認識するためにいくつかの手順を実行する必要があるため、これは理にかなっています。ただし、これらは 1 日のうちに合計されます。
クエリCMMotionActivity
を実行すると、すべてのイベントのタイムスタンプを取得できます。ただし、すべてのステップのタイムスタンプをCMStepCounter
. すべてのステップの配列をタイム スタンプと共に返すことができればどんなに素晴らしいことでしょう。
どうもありがとう。
ios - CMMotionActivityManager を使用して更新を受け取る方法は?
ユーザーが静止しているか、歩いているか、走っているか、または交通機関に乗っているかを理解するために、モーションの更新を受信して処理できるアプリを作成したいと考えています。CMMotionActivityManager が役立つ可能性があることをリファレンスで見ました。
CMMotionActivityManager クラスは、デバイスによって保存されたモーション データへのアクセスを提供します。モーション データには、ユーザーが一定時間歩いているか、走っているか、車に乗っているか、静止しているかが反映されます。
アプリ開発は初めてで、更新を開始する方法がわかりません。これを行う方法は- (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMMotionActivityHandler)handler
. 参照に次のように書かれているため、ハンドラーに何を書くべきかわかりません。
handler 現在のモーション タイプの変更が検出されたときに実行するブロック。このブロックのパラメーターについては、CMMotionActivityHandler を参照してください。このプロパティは nil であってはなりません。
私の実装は次のとおりです。
既に CoreMotion フレームワークをインポートしましたが、XCode が を認識しませんCMMotionActivityHandler
。どこが間違っているのでしょうか? この問題を解決するにはどうすればよいですか?
ありがとう
ios - バックグラウンドでの CoreMotion アクティビティ トラッカー
CoreMotion M7 機能を使用してバックグラウンドでユーザー アクティビティを追跡し、受信したイベントに基づいて位置情報や Bluetooth などのサービスを開始/停止することはできますか?
私は逆の操作が可能であることを知っています。たとえば、バックグラウンドで位置追跡を使用すると、CoreMotion API を使用してそのハンドラーをバックグラウンドで呼び出すことができます。
代わりに、バックグラウンドから追跡されたアクティビティに基づいて特定のイベントを開始することにより、バッテリー消費を最適化することが必要です。
ios - M7コプロセッサを搭載したiOSデバイスで移動距離、速度、期間を計算する方法は?
M7コプロセッサを搭載したiOSデバイスで移動距離、速度、期間を計算する方法は?
Apple の CMMotionActivityManager ドキュメントを 参照しましたhttps://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMMotionActivityManager_class/Reference/Reference.html#//apple_ref/doc/uid/TP40013503
デバイスによって保存されたモーション データへのアクセスを提供します。取得するデータは次のようなものです。
CMMotionActivity @ 14074.912282,<startDate,20140303 10:09:40
+0000,自信,1,不明,0,静止,0,ウォーキング,1,ランニング,0,自動車,0>
CMMotionActivity @ 14077.466468,<startDate,20140303 10:09:43
+0000,自信,0,不明,0,静止,0,ウォーキング,0,ランニング,1,自動車,0>
CMMotionActivity @ 14080.024116,<startDate,20140303 10:09:46
+0000,自信,1,不明,0,静止,0,ウォーキング,0,ランニング,1,自動車,0>
CMMotionActivity @ 14082.582084,<startDate,20140303 10:09:48
+0000,自信,2,不明,0,静止,0,ウォーキング,0,ランニング,1,自動車,0>
したがって、GPS を使用せずに /M7 データのみに依存して、移動距離、実行時間、速度などを計算できます (例: ランニング)。
ios - CMMotionActivityManager はサイクリングを無視します
CMMotionActivityManager
デバイスのユーザーが歩いているか、走っているか、車に乗っているかなどを判断するために、新しい M7 チップを調査しています ( Apple のドキュメントを参照)。LocationManager
これは、加速度計のデータのみ を使用してこれを決定しようとする試みに比べて、大きな前進のように思えました。
しかし、残念なことにサイクリングCMMotionActivityManager
アクティビティがなく、新しいアクティビティマネージャーとして完全に使用するにはほとんど問題があることに気付きました. サイクリングをテストするためだけに+加速度計を再組み込みすることなく、サイクリングで使用する便利な方法を他の誰かが見つけましたか?CMMotionActivityManager
CMLocationManager
これには、電車などの一般的な輸送オプションも含まれないことに注意してください。たとえば、私は電車で 1 日 1 時間通勤しています。Moves が Transport を使用するのと同様に、Automotive は少なくともより一般的なものにすることができます。
CMMotionActivity
これらの定義されたモーション タイプのみがあります。
- 定常
- ウォーキング
- ランニング
- 自動車
- わからない
必ずしも問題を解決するわけではありませんが、役に立つ Apple のコードからの有用なメモ:
CMMotionActivity
デバイスの動きに基づくユーザーのアクティビティの推定。
アクティビティは一連のプロパティとして公開され、プロパティは相互に排他的ではありません。
たとえば、一時停止の標識で停止している車に乗っている場合、状態は次のようになります。静止 = YES、歩行 = NO、走行 = NO、自動車 = YES
または移動する乗り物、静止 = いいえ、歩く = いいえ、走る = いいえ、自動車 = はい
または、デバイスが動いていても、歩いていないか、車に乗っていない可能性があります。静止 = いいえ、歩く = いいえ、走る = いいえ、自動車 = いいえ。この場合、すべてのプロパティが NO であることに注意してください。
[直接ソース: Apple iOS フレームワーク、CoreMotion/CMMotionActivity.h @interface CMMotionActivity、インライン コード コメント]
core-motion - アプリケーションで M7 コプロセッサ センサーを検出する方法
はっきりさせたかっただけです。アプリで加速度計を使用していますが、iPhone5s の M7 コプロセッサ データを受信するには、他のフレームワークまたはメソッドを追加する必要がありますか? メソッドでCoreMotionフレームワークを使用するだけで十分ですか
M7 コプロセッサからデータを受信するには?それとも、iPhone 5s でデータを取得するために追加のメソッドまたはフレームワークを含める必要がありますか?
前もって感謝します。
ios - m7/m8 は、モーション アクティビティの認証が拒否されたかどうかを検出します
M7/M8 チップの MotionActivity を、歩数のカウントなど、さまざまな方法で使用しています。歩数のカウントについては、その日の歩数を照会し、リアルタイムで発生する歩数を継続的にリクエストします。
現在、これを行う前に、このコードに進む前に[CMStepCounter isStepCountingAvailable]とローカル オーバーライド フラグを確認しています。motionActivity の承認が付与されていない場合、isStepCountingAvailable は FALSE を返すと想定しました。これは事実ではないようで、ハードウェア検出のみのようです。これに対して承認が付与されたかどうかを検出する他の方法が見つからないようです。
つまり、startStepCountingUpdatesToQueue と queryStepCountStartingFrom の両方が実行され、ブロックが返されますが、常にエラー コードが返されます。特に CMErrorDomain コード 105。
motionActivity が承認されていないかどうかを判断するためのより良い方法はありますか? フォールバック コードはいくつかありますが、return ブロックのエラー コードではなく、事前にブール値チェックを行いたいと思います。
ios - ユーザーにプロンプトを表示する前に、Core Motion サービス (M7 など) の認証ステータスを確認しますか?
WWDC 2014 セッション 612 (45:14) では、Core Motion サービスの認証ステータスを確認する方法が強調されています。
これは機能しますが、 への最初の呼び出しで-queryPedometerDataFromDate:toDate:withHandler:
は、システム ダイアログを介してユーザーに承認を求めるプロンプトが表示されます。明らかなUX上の理由から、ユーザーに許可を求めることなくステータスを確認したいと思います。
私が達成しようとしていることは可能ですか、それとも API について間違った方法で考えているだけですか?