안녕하세요. 웹의 모든 솔루션을 사용해 보았지만 아무 것도 작동하지 않았습니다. 방아쇠를 클릭하면 전체 화면이 팝업되는 오버레이 (서비스)가 있습니다. 오버레이에서 몇 가지 바로 가기, 볼륨 컨트롤 및 밝기 조절 기능을 사용했습니다. 요점은 내가 무엇을해도 밝기가 화면을 즉시 바꿀 수는 없다는 것입니다 (화면을 켜고 끌 필요가 있습니다).Android에서 밝기 설정 - 지금까지 아무 것도 작동하지 않았습니다.
이 밝기 슬라이더가 업데이트 될 때 내가 부르는 :
당신이 아닌 다른 화면을 끄고 경우 작동@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
int value = (int)(arg1*255.0/100);
int V=-1;
try {
V=android.provider.Settings.System.getInt(getContext().getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("V="+V+"brightness="+value);
//android.provider.Settings.System.putInt(getContext().getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
android.provider.Settings.System.putInt(getContext().getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, value);
android.provider.Settings.System.putInt(getContext().getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
// Intent intent= new Intent(getContext(), Bright.class);
// Bundle b=new Bundle();
// b.putFloat("lvl", (float)(arg1*0.01));
// intent.putExtras(b);
// //intent.putExtra("lvl", (float)(arg1*0.01));
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// getContext().startActivity(intent);
}
});
. 클래스가 서비스 (NO하여 GetWindow()을 사용할 수는)이기 때문에, 나는 또한 위의 해결 방법의 불행하게도 아무도
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness=0.9f;
getWindow().setAttributes(lp);
가 보인다 (또한 웹에서 발견) 코드를 호출하는 가짜 활동을 산란의 트릭을 시도 내 경우 엔 전혀 작동하지 않아. WindowManager는 아무 것도하지 않는 것 같습니다. 아마도 내 앱이 구현 된 방식 일 것입니다. ("클래식"창이 아닌 시스템 오버레이)
어쨌든 갑자기 슬라이드의 설정> 밝기 창을 배경에서 열었을 때 슬라이더가 작동하기 시작했습니다. 이렇게하면 슬라이더가 두 줄만 설정하여 시스템 밝기를 직접 제어 할 수 있습니다.
android.provider.Settings.System.putInt (getContext(). getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, value); android.provider.Settings.System.putInt (getContext(). getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
이렇게하면 배경에 "어떤 프로세스"가있을 때 밝기 조절이 매우 쉬워집니다 (반드시 그러해야합니다!). 아무도 내가 이해하려고 노력할 수있게 도와 줄 수 있습니까? 동일한 효과를 얻을 수있는 방법은 무엇입니까? 커맨드 라인을 사용하여 밝기 창을 단순히 시작하는 것이 좋겠지 만 (만약 내가 알고 있다면) 분명히 더 미묘한 해결책을 원할 것입니다.
당신의 의견을 알려주십시오.
환호
에마
IT WORKS! "WindowManager.LayoutParams"전에 "final"을 추가 한 후에 작업을 시작했지만 다시 꺼냈다가 여전히 작동했습니다. 내가 재부팅하고 지금은 "최종"또는없이 작동합니다. 이것은 단지 우연의 일치입니까, 아니면 "최종적인"결과가 실제로 달라졌습니까? 어쨌든 많이 고마워! – Lele
(당신은 10f에 대해 맞았습니다. 실수로 거기에 놓았지만 실제로 0과 1 사이의 값을 사용했습니다. 지금 코드를 업데이트했습니다. 건배! – Lele