2012-02-21 10 views
2

私のアプリケーションでは、揺れイベントを検出したいと思い、SensorEventListenerを使用しています。しかし、画面をロックするために電話のロックボタンを押すと、揺れイベントは検出できません。私はサムスンのgts5360で自分のコードをテストしました。しかし、同じコードは、ソニーエリシオンxperia mini proでうまくいきます。実際に私のサムスンの携帯電話は、私が約アイドルのデバイスをアイドル状態のままに振るイベントを検出していません。装置をロックした後、45秒間。携帯電話の画面がAndroidでオフのときに揺れイベントを検出できない

私は電話を振る、それは揺れを検出しませんが、私は数秒後に電話を振ると、それは揺れを聞き始めます。私の携帯電話のこの動作は一貫していません。ランダムな時間が経過した後、揺れイベントの開始と停止を開始します。

今私の質問は、 "これは、デバイスが画面がロックされているときに揺れイベントを検出しないアンドロイド機能ですか?"です。

もしそうなら、電話をロックしてから数秒後に私の携帯電話がどのように起動/停止するのですか?

「ソニーエリシオンxperia mini pro」で画面がロック/オフされているときに、どのようにして揺れイベントを引き続き聞いていますか?

この機能はベンダによって異なりますか?

私のコードが必要な場合は、教えてください。私はそれを提供します。

+0

いくつかの段落を追加してください。句読点を修正してください。あなたの質問は読みにくいです。 –

+0

私の質問を編集しました。コードが必要な場合は教えてください....... – picaso

答えて

0

問題は長い間、画面が消灯したときのセンサーの処理の一貫性の基準がありませんでした。いくつかのデバイスは、それが動作し続けることを許可し、他のデバイスは動作しない。最終的にAndroidのチームは、アプリケーションを動作させるためにはこの種の操作のための部分的なウェイクロックを取得する必要があることを決めた:

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE); 
PowerManager.WakeLock lock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SensorRead"); 
lock.acquire(); 

この許可を必要とする:

あなたはウェイクを解放することを確認する必要がありますこれで完了したらロックして、CPUが完全にスリープ状態になるようにします。

このすべての場合でも、動作しない可能性があります。私は最近、LGの携帯電話がバックグラウンドセンサーをサポートする可能性が低いことを発見しました。モトローラの多くの携帯電話では、ウェイクロックは必要ありませんが、画面が消灯したときにセンサーに再登録するだけで済みます。

関連する問題