Androidフォンで加速度計をデューティサイクルしようとしていますが、それを実装する正しい方法がわかりません。より具体的には、デューティサイクルのパーセンテージx%を割り当てたいと思います。これは、加速度計がx%パーセントの時間アクティブになり、1x%%の時間休止することを意味します。2つのTimerTasksを使用することを考えていますが、他のオプションも知りたいです。
ありがとう!
Androidフォンで加速度計をデューティサイクルしようとしていますが、それを実装する正しい方法がわかりません。より具体的には、デューティサイクルのパーセンテージx%を割り当てたいと思います。これは、加速度計がx%パーセントの時間アクティブになり、1x%%の時間休止することを意味します。2つのTimerTasksを使用することを考えていますが、他のオプションも知りたいです。
ありがとう!
期間Tにわたってオンパルスとオフパルスを与えるタイマーが必要です。デューティサイクル=トン/トン+Toffしたがって、その期間にこれらのパルスを生成できるタイマーが1つあれば、完了です。
タイミングにはHandler.postDelayed()を使用できます(サンプリングウィンドウの長さとスリープウィンドウの長さを交互に繰り返す遅延を使用してpostDelayedを呼び出します)。このソリューション(およびTimerTaskを使用したソリューション)では、スリープモードに入るとタイマーがデバイスをウェイクアップしないため、ウェイクロックを維持する必要があります。
したがって、バックグラウンドで感知したい場合、これはバッテリーを速く消耗します!この場合、AlarmManagerを使用してデバイスを定期的にウェイクアップし、サンプリングウィンドウの長さの間のみウェイクロックを取得する必要があります。