안드로이드 개발 정보
(글 수 1,064)
안녕하세요.
안드로이드 폰들의 버튼 (Home, Back, Menu 등) 들이 보통 터치버튼이고,
터치할 때 불이 들어오잔아요.
이것도 프로그램으로 제어가 가능하기는 하더군요.
그런데, 삼성폰은 안됩니다 ( 갤럭시S, S2 다 안됨)
코어 함수는 아래와 같구요.
private void setButtonBacklight(boolean onOff) {
final Window win = getWindow();
final WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
float value;
if (onOff)
value = winParams.BRIGHTNESS_OVERRIDE_NONE;
else
value = winParams.BRIGHTNESS_OVERRIDE_OFF;
if (Build.VERSION.SDK_INT < 8) {
// hack for pre-froyo to set buttonBrightness off
try {
Field buttonBrightness = winParams.getClass().getField(
"buttonBrightness");
buttonBrightness.set(winParams, value);
} catch (Exception e) {
e.printStackTrace();
}
} else {
winParams.buttonBrightness = value;
}
win.setAttributes(winParams);
}
풀 소스는 첨부하였습니다.
실행하면 2초 단위로 버튼 백라이트 on/off 해야 정상이랍니다.
on/off 안하면 가지고 계신 폰이 삼성 처럼 지들 맘대로 수정해서 안드로이드 호환성이 떨어지는 것이랍니다 ^^
수고하세요!
크롬에서 소스 추가하면 저렇게 추가되네요 ㅡ.ㅡ