2017-09-08 9 views
0

나는 광범위하게 검색 한 결과 비슷한 질문을 찾을 수 없습니다.Android에서 화면 밝기가 변경된 경우 어떻게 감지하나요?

휴대 기기의 화면 밝기가 변경되었을 때이를 감지 할 수있는 방법이 있는지 알고 싶습니다.

앱이 시작될 때 이미 이전 값을 저장하고 화면 밝기의 초기 값과 최종 값을 비교하기 위해 Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);을 반복적으로 사용하여 확인하려고했으나 좋은 방법은 아닙니다.

편집

감사 : 이미 현재 화면 값을 가져 주기적으로 화면 밝기 변화를 확인하기 위해 Settings.System.SCREEN_BRIGHTNESS를 사용하는 솔루션을 시도했다이 질문 상태. 나는 이러한 작업을 수행하는보다 효율적인 방법을 찾고있다.

+1

[Android에서 선호 화면 밝기 가져 오기] (https://stackoverflow.com/questions/4544967/get-preferred-screen-brightness-in-android) 가능한 복제본 – Michael

+0

시스템 수준이없는 것 같습니다 당신이 폴링을 유지하지 않으면 사용자가 그것을 변경했을 때 알 수 없도록 화면 밝기를 방송합니다. 이는 제가 동의하는 것이 가장 좋은 방법은 아닙니다. @Michael이 방금 연결 한 문제를 추가하면 손에 아주 어려운 문제가 발생합니다. –

+0

@Michael 거기에서 논의되는 문제는 이미 시도한 것과 동일한 방법을 제안합니다. 대안 솔루션을 찾고있었습니다 : D –

답변

0

밝기 변화를 감지 할 수있는 수신기가 없습니다.

서비스 또는 스레드을 실행하여 사용자가 밝기 변경을 확인해야합니다.

Settings.System.getInt(getContext().getContentResolver(), 
      Settings.System.SCREEN_BRIGHTNESS); 

위의 코드는 현재 시스템 밝기 레벨을 제공합니다. 주기적으로 밝기를 감지하고 이전의 밝기와 비교하십시오.

참고 : 시스템이 자동 밝기 모드에 있으면 현재 밝기 레벨을 얻을 수 없습니다. 이 answer을 참조하십시오.

+0

나는 이미이 방법을 시도해 보았습니다. (이미 언급했듯이) 더 효율적인 방법을 찾고있었습니다. 그래서. –

+0

대답은 아니오입니다. 효율적으로 수행 할 방법이 없습니다. 답에서 공유 한 링크를 참조하십시오. –