2012-05-06 2 views
0

몇 초 후에 안드로이드 화면을 껐다가 다시 켜려고합니다. 이 코드를 가진 "해제"부분 작품 : 나는 다시 화면을 설정하려고 할 때안드로이드 화면 끄기/켜기

WindowManager.LayoutParams layoutParam = getWindow().getAttributes(); 
oldBrightness = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS)/255f; 
layoutParam.screenBrightness = 0; 
layoutParam.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; 
getWindow().setAttributes(layoutParam); 

그러나 그런 다음,이 코드가 작동하지 않습니다

WindowManager.LayoutParams layoutParam = getWindow().getAttributes(); 
layoutParam.screenBrightness = oldBrightness; 
layoutParam.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; 
getWindow().setAttributes(layoutParam); 

어떤 생각을에 그것을 해결할 수 있습니까?

감사

+0

디버깅 할 때 'oldBrightness'값이 맞는지 확인 했습니까? – Zakaria

답변

0

첫째, 당신이이 줄에서 "/ 255f"에 대한 확신 :

oldBrightness = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS)/255f; 

"oldBrightness"당신이 얻을 때 /로 설정의 값이 무엇입니까?

PowerManager.WakeLock lck = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); 
lck.acquire(); 

정상적인 웨이크 잠금 장치에 화면을 설정하지 않지만, 그것은 사용자가 발생하는 경우에 머물 발생합니다

어쩌면 당신이 시도 할 수 있습니다. 그러나이 플래그는 화면을 즉시 켜도록 강제합니다. "android.permission.WAKE_LOCK"이 필요합니다. 그것에 대해

더 :

http://developer.android.com/reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK

그리고 화면 속성 (ON, OFF, 밝은, 어두운 등) : 나는 U가 Powermanager 가동 잠금을 시도 할 수 있다고 생각

http://developer.android.com/reference/android/os/PowerManager.html

+0

android.provider.Settings.System.getInt (getContentResolver(), android.provider.Settings.System.SCREEN ... 0에서 255 사이의 값을 반환하고 layoutParam.screenBrightness는 0과 1을 기다립니다. 코드 사용 화면이 수동으로, 내 코드가 아니라 그것을 셧다운 경우에만 켜져 있습니다. 그래서 잠자기를 사용하여 해제하려면 시도하지만이 같은 해제하지 않습니다 : PowerManager 오후 = (PowerManager) SecureStopwatchExecActivity. this.getSystemService (Context.POWER_SERVICE) \t \t \t \t \t \t PowerManager.WakeLock WL = pm.newWakeLock (PowerManager.PARTIAL_WAKE_LOCK "태그"); wl.acquire(); wl.release(); – user1029309

1

어쩌면 작동 할 수도 있습니다. 내 응용 프로그램에서이 코드를 사용하고 있습니다. 잘 작동합니다. :)

또한 매니페스트에 권한을 설정해야합니다.

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

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
       WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK 
               | PowerManager.ACQUIRE_CAUSES_WAKEUP 
               | PowerManager.ON_AFTER_RELEASE, "MyWakeLock"); 
       wakeLock.acquire();