센스센서라는 앱을 개발한 개발자 입니다.
센스센서 앱에는 조도센서 값을 보여주는 기능이 있습니다.
그런데 이번에 2.3으로 업그레이드 하면서 발견한 현상을 공유코자 합니다.
* 문제점
위 사진을 보면 현재 조도센서 값이 5000lux를 표시하고 있는데
아래 프로그래스바 오른쪽 밑에 표시되어 있는 max 조도센서값이 3000lux 밖에 표시가 되지 않는 겁니다.
현재 조도 센서값이 최대 조도 센서값보다 크게 표시가 되서 삼성전자에 문의를 했습니다.
현재 조도센서 값은 onSensorChanged 이벤트에서 받은 값입니다.
max 조도센서 값은 Sensor 클래스의 getMaximumRange() 메소드의 값입니다.
* 삼성 전자 답변
1. getMaximumRange() 값의 의미는?
- 단말에 실장된 조도센서가 센싱가능한 최대 lux 값
- GalaxyS에 탑재된 조도센서 제조사에서 배포한 datasheet에는 Max Lux 값이 3000으로 기입되어 있음.
- 즉 getMaximumRange()로 받아오는 값은 조도센서의 datasheet를 보고 저희가 직접 code 상에 기입한 값입니다.
(센서로부터 받아오는 값이 아님)
2. onSensorChanged에서 받아오는 현제 센서에서 검출한 Lux 값이 센서의 Max Lux인 3000을 왜 넘는가?
- onSensorChanged에서 받아오는 값은 실제 센서에서 센싱한 Lux 값임.
- datasheet에서의 센싱 Max 값과 실제 센싱값의 range가 다른 것에 대해서 저희 개발실에서도 매우 의아하게 생각하고 있는 상황입니다. 제조회사에서 배포한 datasheet가 잘못되었을 수도 있다고 판단하고 있습니다.
다만, getMaximumRange() 값이 그냥 정보를 보여주는데만 사용될 뿐 다른 동작에 연계되지 않는 다는 사실을 참고로 알려드립니다.
* 결론
갤럭시S 단말기의 조도 센서에서 제공하는 getMaximumRange()의 값은 3000lux로 현재 조도 센서 값보다 작을 수 있다.
* 모토로이(2.2) 화면
** ps
안방 형광등 밝기인데 두 단말기에 표시되는 현재 조도센서값의 너무 틀리게 표시 됩니다.
갤럭시S는 5000lux, 모토로이는 83lux
(조도 센서값은 신빙성이 떨어지는거 같네요)
안방의 형광등 불빛 진정한 lux 값은 몇 일까요?
저도 조도센서로 앱을 개발하고있는데 문제점이 한두가지가 아니네요.
안드로이드 스마트폰중에서도 조도센서가 다 들어있는것도아니고 그리고 어떤 스마트폰은 조도센서의 값을 두가지형태로만 배출하더군요
그래서 조도센서로 먼가 정확한 값을 내어주는 앱을 만들긴 힘들겟 더라구요
제가 실험해본게 htc desire hd 만 해봤는데 그것도 값이 상세히 나타나는게 아니라 300 600 1000 2048 10240 이렇게 대략의 값만 나타나니.. 참으로 힘듭니다 ㅜㅜ
Illuminance | Example |
---|---|
10−4 lux | Total starlight, overcast sky[2] |
0.002 lux | Moonless clear night sky with airglow[2] |
0.01 lux | Quarter moon |
0.27 lux | Full moon on a clear night[2][3] |
1 lux | Full moon overhead at tropical latitudes[4] |
3.4 lux | Dark limit of civil twilight under a clear sky[5] |
50 lux | Family living room[6] |
80 lux | Hallway/toilet[7][8] |
100 lux | Very dark overcast day[2] |
320–500 lux | Office lighting[9][10][11] |
400 lux | Sunrise or sunset on a clear day. |
1,000 lux | Overcast day;[2] typical TV studio lighting |
10,000–25,000 lux | Full daylight (not direct sun)[2] |
32,000–130,000 lux | Direct sunlight |
** 갤럭시S의 조도센서 값 표시 부분은 대충 이렇게 넘어 가야 겠네요.
앞으로 조도센서를 사용할 일은 없겠지만,, 개발자로서 조금 안타깝네요. 제대로된 정보를 제공 할 수 없어서..
그래도 삼성전자의 성실한 답변은 마음에 드네요.
아래 글은 getMaximumRange() 값을 수정 할 계획에 대한 답변입니다.
--> 질문
센서 제조업체에서 제공한 datasheet의 3000lux값이 현재 조도 센서보다 작게 표시가 되는 실정인데
max값 수정 계획이 있는지요?
--> 답변입니다.
개발팀에 수정계획에 대해 문의를 하였으나, 현재 Max 값에 대한 수정계획은 없다는 답변을 받았습니다.
GalaxyS 에 사용되는 조도센서는 Sharp 社 의 GP2A 칩인데, 아직 해당 회사로부터 datasheet 와의 상이한 측정범위에 대한 답변을 받지 못했습니다.
답변을 받게 되더라도 제품에 적용하기 위해서는 많은 절차가 필요하기 때문에, 당장의 수정계획은 없다고 한 것으로 보입니다.
원하시는 답변을 드리지 못해 죄송하네요.. 양해부탁드립니다.
좋은 정보 고맙습니다. ^^