5

ユーザーが画面に触れるまで画面を点滅/点滅させるバックグラウンドサービスを行う予定です。

画面を点滅させる方法はわかりません-スポーンされたアクティビティを介して明るさと制御で実行できることを学んだことだけです。

画面上の色の変化、つまり白黒または画面のオン/オフで点滅させて、明るさよりも見やすくしたい。

4

2 に答える 2

13

これを画面の点滅に使用しました。このコードでは、relativeLayout (HomeLayout) が点滅します。

Animation animation = new AlphaAnimation(1, 0); // Change alpha
// from fully
// visible to
// invisible
animation.setDuration(500); // duration - half a second
animation.setInterpolator(new LinearInterpolator()); // do not alter
// animation
// rate
animation.setRepeatCount(Animation.INFINITE); // Repeat animation
// infinitely
animation.setRepeatMode(Animation.REVERSE); // Reverse animation at

// the
// end so the layout will
// fade back in
relativeLayout.startAnimation(animation);

画面またはボタンをタッチしてアニメーションをクリアするときに、このコードを追加します。

relativeLayout.clearAnimation();
于 2013-01-21T09:59:36.773 に答える
4

あなたのサービスから、次のものと対話できますWakeLock:

を取得するWakeLockには:

PowerManager powerMan = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerMan.newWakeLock(
                     PowerManager.SCREEN_DIM_WAKE_LOCK | 
                     PowerManager.ACQUIRE_CAUSES_WAKEUP, "wakelockTag");

次に、画面をオンにします。

wakeLock.acquire();

次に、もう一度オフにします。

wakeLock.release(); 

Threadそして、これをsleep とともに に入れるか、 を使用Timerしてフラッシュを作成することができます。

例えば:

new Thread() {
            public void run() {
                boolean screenOn = false;
                for (int i = 0; i < 5; i++) {
                    try {
                        sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if (screenOn) {
                        wakeLock.acquire();
                    } else {
                        wakeLock.release();
                    }
                }
            }
        }.run();

黒/白ではなく、オン/オフだけです。

黒/白にしたい場合は、KeyLock( Android キーガードActivityを検索する) も外してから、完全に黒だった を押してから、以前のように または でActivityを白に変更する必要があります。はるかに多くの作業。TimerThread

で許可を取得することを忘れないでくださいAndroidManifest.xml:

<uses-permission android:name="android.permission.WAKE_LOCK" />

KeyGuardそのルートを下った場合、ロックを解除するには追加の権限が必要になります。

于 2013-02-01T16:43:12.743 に答える