2013-01-21 3 views
4

사용자가 화면을 터치 할 때까지 화면이 깜박이거나 깜박 거리는 백그라운드 서비스를 수행 할 계획입니다.Android 기기에서 백그라운드 서비스의 화면 깜박임/깜박임을 만드는 방법은 무엇입니까?

화면을 깜박이는 방법을 알지 못합니다. 스폰 된 활동을 통해 밝기와 제어로 수행 할 수있는 것을 배웠습니다.

화면의 색상 변경 (예 : 흑백 또는 화면 켜기/끄기)이 밝기보다 밝게 보이기를 원합니다.

답변

4

당신이 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으로는 취득

다시 꺼짐 :

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합니다 (안드로이드 키 가드를 검색), 다음에 화이트에 Activity을 변경 한 후, 완전히 검은 색이었던 Activity을 밀어 낼 Timer 또는 이전과 마찬가지로 Thread에 훨씬 더 많은 작업.

AndroidManifest.xml에 허가를 받아야 기억

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

추가 권한은 그 길 아래 갈 경우 KeyGuard를 잠금 해제해야합니다.

11

화면 깜박임에이 코드를 사용했습니다. 내 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(); 
+0

곧 테스트 할 것입니다. 오버레이로 작동하는지 일부 백그라운드 서비스가 프론트 엔드에 표시 할 수 있다는 의미입니까? – Chameleon

+0

@Chameleon : 나는이 시간에 어떤 뒷 배경 서비스도 호출하지 않을 것입니다, 나는 화면이 깜박일 때 소리를 내기 위해 연주했습니다. 이 코드를 원하는대로 변경하십시오. :) – Aerrow

+0

배경 서비스에서 화면 깜박임을 제어하는 ​​것이 가능하다면 가능한 경우 알 수 없다 : – Chameleon

관련 문제