簡體   English   中英

如何在Android設備上使后台服務的屏幕閃爍/閃爍?

[英]How to make screen flashing/blinking from background service on Android device?

我計划進行后台服務,這將使屏幕閃爍/閃爍,直到用戶觸摸屏幕。

我不知道如何使屏幕閃爍的方法 - 只有通過生成活動可以通過亮度和控制來學習的方法。

想要在屏幕上進行閃爍換色,即黑白或屏幕開/關,使其比亮度更明顯。

我用它來屏幕閃爍,在這段代碼中我的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);

當您觸摸scree或按鈕以清除動畫時,添加此代碼。

relativeLayout.clearAnimation();

從您的服務中,您可以與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 ,或者使用一個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白上Timer或一個Thread像以前一樣。 還有更多工作要做。

請記住在AndroidManifest.xml獲得權限:

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

如果您沿着該路線KeyGuard則需要額外的權限來解鎖KeyGuard

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM