Android:OnSensOrchangedに代わるものはありますか?電話がテーブルに背を向けているとき(動きがない場合)加速度計のデータはありません

StackOverflow https://stackoverflow.com/questions/5804142

質問

したがって、このコードを使用して加速度計データを取得しています。私がDDMSモードで、印刷ステートメントが印刷されているものを確認するとき、電話が動かないときに何も印刷されていないことに気付きました。すなわち。それはテーブルの上です。その理由は、携帯電話が動かないときにssensorchangedが呼び出されず、電話が再び動き始めたときに呼び出されたからだと思います。電話が動いているかどうかに関係なくデータをキャプチャしたい場合、他の機能を使用する必要がありますか?代替品はありますか?または解決策はありますか?どんなことにも感謝します。

ありがとう!

public void onSensorChanged(SensorEvent event) {  

    StringBuffer buff = new StringBuffer();
    buff.append(String.valueOf(event.timestamp));
    buff.append(comma);
    buff.append(String.valueOf(event.values[0]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[1]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[2]));

    mCurrentFile.println(buff.toString());
    mCurrentFile.write(buff.toString()+ '\n');

    System.out.println( "**" + buff.toString());

}
役に立ちましたか?

解決

センサーの変更を聞く1つのスレッドを使用できます(つまり、 onSensorChanged() それはデータをグローバル変数に書き込みます)とタイマーを実行している別のスレッド(を見てください postDelayed, http://developer.android.com/reference/android/os/handler.html)それはセットタイムでそれを読みます。変更がない場合、同じデータを再度読み取ります。簡単で清潔で、バッテリーにぴったりです。

他のヒント

この方法が「センサーが変更される」ときにのみ呼び出される場合は、実行されたときに読み取られた値を保存してみてください。メソッドが呼び出されていない場合、それは値が同じであるという意味ではありませんか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top