반응형
Android Sensor
Light Sensor 사용하기
갤럭시 폰의 전면(얼굴) 카메라 옆에 있는 조도(밝기) 센서를 이용해서 현재 조도를 알아오는 방법입니다.
일단 Manifast에 아래와 같이 추가.
<uses-feature android:name="android.hardware.sensor.light" android:required="true"/>
사용하려는 class (Activity, Fragment..) 의 전역변수로 추가
private SensorManager sensorManager;
private Sensor lightSensor;
private String light = "";
여기서 String light 는 현재 조도를 받아와서 표시하기 위한 변수입니다.
그리고 초기화하는 메소드 안에 아래 소스를 입력합니다.
sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if( lightSensor == null )
showToast("No Light Sensor Found!");}
초기화 메소드라면,
예를들어 Fragment 는 onViewCreated, Activity 는 onCreate
onResume에
@Override
public void onResume() {
super.onResume();
sensorManager.registerListener(this, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
Class 에 implement
public class SomeFragment extends Fragment implements SensorEventListener { |
그리고 SensorEventListener 의 메소드를 implement
@Override
public void onSensorChanged(SensorEvent event) {
if( event.sensor.getType() == Sensor.TYPE_LIGHT){
light = String.valueOf(event.values[0]);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
이렇게 끝입니다. 해당 Activity 나 Fragment를 실행하면
onSensorChanged 가 계속 발생하면서 light 변수에 조도 값이 들어옵니다.
0이상의 값이 들어옵니다.
참고로 보통 사무실 환경이 300~500정도 됩니다.
2019/11/24 - [Android] - 글 작성자의 앱 - 로또버스
728x90
반응형
'Android' 카테고리의 다른 글
[Android] Gallery 에서 Image 가져오기. (0) | 2019.09.03 |
---|---|
[Android] Activity Full Screen 만들기 ( 전체화면 ) (0) | 2019.08.31 |
android.app.Fragment is deprecated (0) | 2019.06.25 |
[Android] MsSQL Server 연동하기 (8) | 2019.05.09 |
[android] 화면간 값 전달 Activity intent parameter (0) | 2019.02.27 |
댓글