2011-01-20 13 views
6

私は、ポーリングレートが0.25ミリ秒未満の加速度センサーをモニターする最良の方法を見つけようとしています。私は、ユーザーが一定の監視状態に切り替えるためのUIオプションを実装し、バッテリーのドレインの影響を排除しました。 Androidサービスがメモリとスレッドのクリーンアップを処理する方法のために、リモートサービスがデーモンスレッドより優れた方法でしょうか?ポイントは、加速度計を可能な限り一定に近づけるようにモニターすることです。バッテリーの消耗は避けてください。そして、この監視は、長時間稼働する必要があります.24時間以上もかかることがありますが、電力消費の結果を実現します。示唆されている読書やコードスニペットがあれば幸いです。Androidのセンサーを常時監視しています

Androidコミュニティの知恵から助言を求めているちょうど新しい人です。事前のおかげで、

-Steve

明確化:私は、加速度の変化があった瞬間を検出しようとしています。私のコードは軸によって弁別しますが、加速度計からのリアルタイムデータを得ることが私の目標です。

+0

アクセルがところでセンサーです。それはプッシュする、あなたはそれから感知できないほど価値を引き出すことができない! – LordT

+0

@ LordT - 再読したところでは、私はより良い言い方をすることができたことを実感しました。私は、カスタムリスナーインターフェイスを使用して、加速度センサーから更新を受信して​​います。それを指摘してくれてありがとう。 – Kingsolmn

+0

ああ、大丈夫、それは理にかなっている。言ったように、私はこのサービスのために行くだろう - リモートサービスを使用すると、あなたはバックグラウンドでうまく実行できるようになる – LordT

答えて

2

Android Servicesを使用してこれを行いました。アクティビティから開始することはできますが、バックグラウンドで実行することはできます。それはおそらくあなたが探しているものです!
いくつかのHOWTO:Android上で

  1. http://developerlife.com/tutorials/?p=356
  2. http://developer.android.com/guide/topics/fundamentals.html#procthread
+0

ポスターはバッテリーの消耗には興味がありませんが、ちょっと不思議です。どれくらい悪いですか? – Demiurg

+0

私は正確な数字を覚えていませんが、私たちは完全なセットアップのために、G1から約10時間を取得しました。 - しかし、それは> 300Hzで心拍数と他の数値をクランチしていて、 。私は、加速度計を使用しただけで16時間以上が得られたと思います – LordT

+0

デバイスの休止状態はどうですか?デバイスがスリープ状態になり、これらのセンサーをシャットダウンすると、センサーの更新は行われません。常にウェイクロックで走っていましたか? – MikeL

1

特定のスレッドを監視して待機させることが、待機時間に柔軟性をもたらす最適なソリューションです。これは特定のサービスを必要としないので、非常に効率的です。

class MonitorThread extends Thread { 
    ... 
    public void run() { 
     for (;;) { 
      long ms = 0; 
      int nanos = 250000; 
      ... // Do something or compute next delay to wait 
      try { 
       Thread.sleep(ms, nanos); 
      } catch (InterruptedException ex) { 
      } 
     } 
    } 
} 

あなたは非常に短い遅延時間(0.250ミリ秒)を指定ので、これは集中的なCPUとなりますhttp://developer.android.com/reference/java/lang/Thread.html

を参照してください。 加速度計の結果を使用して、この遅延を増減することができます。 たとえば、加速がないことが検出された場合、遅れを増やします(これは ですが、100msはそれほど高くないと思われます)。すぐに何かを検出すると、遅れを 減らしてください。すべてこれはアプリケーションによって異なります。

+0

アンドロイドで、私は本当にこれを必要とする場合、私は本当にこれのためのハンドラを使用します! – LordT

+0

@ ciceron-私は加速度の変化がある瞬間を検出しようとしています。私のコードは軸によって弁別しますが、加速度計からのリアルタイムデータを得ることが目標です。覚醒データを使用して睡眠の間隔を制御することをお勧めします。 – Kingsolmn

関連する問題