2

私は、ステータスバーの通知を介してユーザーと主に通信するAndroidアプリを書いています。ただし、ユーザーが実際に電話を直接操作していない場合は、ユーザーに迷惑をかけないようにしたいと思います。たとえば、ユーザーがナビゲーションアプリを使用している場合や、映画を見ている場合です。これらの種類のアプリのすべて(またはほとんど)に共通しているのは、画面をオンに保つことだと思います。アプリは、WakeLockを使用するか、アクティビティにkeepScreenOnパラメーターを指定することで、画面をオンに保つことができると思います。他の方法があるかもしれません。

通知を表示する前に、別のアプリケーションが画面をオンにしているかどうかを確認して、ユーザーの迷惑にならないようにすることができるかどうかを知りたいと思いました。すべてのオプションをカバーしたいと思います。WakeLockにはisHeld()メソッドがあることがわかりますが、それは他のメソッドを検出しますか?

ありがとうございました、

4

3 に答える 3

1

私はあなたが得ることができる最高のものはPowerManager.isScreenOn()だと思います。

于 2011-10-11T17:53:12.960 に答える
0

ACQUIRE_CAUSES_WAKEUPフラグを使用して画面の明るいウェイクロックを取得します。このwakelockbcozを取得する必要があります。取得しないと、画面が強制的にオンになります。画面がすでにオンになっている場合でも、ウェイクロックを取得しない限り、アプリケーションが実行されるまで画面がオンのままになることを保証することはできません。完了したら、ウェイクロックを解除することを忘れないでください。

于 2011-10-17T05:15:11.023 に答える
0

状態に関係なく、ステータスバーに通知を投稿するだけでよいと思います。ユーザーの注意を完全に必要とするアプリケーションは、通常、ステータスバーの表示を完全に無効にするため、更新によって害が生じることはありません。

于 2011-10-17T06:06:46.430 に答える