투케이2K

38. (AndroidStudio/android/java) SensorManager 객체를 사용해 기기 센서 지원 여부 확인 실시 본문

Android

38. (AndroidStudio/android/java) SensorManager 객체를 사용해 기기 센서 지원 여부 확인 실시

투케이2K 2021. 1. 28. 13:30

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//================== [기기 센서 지원 여부 확인 메소드] ==================
public void getSensorState(){
	try {
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_Sensor > getSensorState() 메소드 : 사용자 모바일 기기 센서 지원 확인 실시]");
		/**
		 * [확인 방법]
		 * 1. SensorManager 객체를 사용해 기기 센서 지원 여부 확인 실시
		 * 2. 각 속성값이 null이면 지원하는 않는 경우입니다
		 */
		SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

		if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null) {
			Log.d("","\n"+"[Sensor.TYPE_ACCELEROMETER [가속도/충격] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_ACCELEROMETER [가속도/충격] : 미지원]");
		}
		//========주위 온도 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) != null) {
			Log.d("","\n"+"[Sensor.TYPE_AMBIENT_TEMPERATURE [주위온도] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_AMBIENT_TEMPERATURE [주위온도] : 미지원]");
		}
		//========축의 방향과 중력 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) != null) {
			Log.d("","\n"+"[Sensor.TYPE_GRAVITY [축방향/중력] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_GRAVITY [축방향/중력] : 미지원]");
		}
		//========회전 정보 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null) {
			Log.d("","\n"+"[Sensor.TYPE_GYROSCOPE [회전정보] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_GYROSCOPE [회전정보] : 미지원]");
		}
		//========빛의 세기 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT) != null) {
			Log.d("","\n"+"[Sensor.TYPE_LIGHT [빛세기] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_LIGHT [빛세기] : 미지원]");
		}
		//========중력값 제거 가속도 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION) != null) {
			Log.d("","\n"+"[Sensor.TYPE_LINEAR_ACCELERATION [중력값제거 가속도] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_LINEAR_ACCELERATION [중력값제거 가속도] : 미지원]");
		}
		//========자기장 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null) {
			Log.d("","\n"+"[Sensor.TYPE_MAGNETIC_FIELD [자기장] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_MAGNETIC_FIELD [자기장] : 미지원]");
		}
		//========방향각 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) != null) {
			Log.d("","\n"+"[Sensor.TYPE_ORIENTATION [방향각] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_ORIENTATION [방향각] : 미지원]");
		}
		//========압력 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) != null) {
			Log.d("","\n"+"[Sensor.TYPE_PRESSURE [압력] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_PRESSURE [압력] : 미지원]");
		}
		//========근접한 물체와 거리 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY) != null) {
			Log.d("","\n"+"[Sensor.TYPE_PROXIMITY [근접감지] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_PROXIMITY [근접감지] : 미지원]");
		}
		//========상대 습도 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY) != null) {
			Log.d("","\n"+"[Sensor.TYPE_RELATIVE_HUMIDITY [상대습도] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_RELATIVE_HUMIDITY [상대습도] : 미지원]");
		}
		//========보정되지않는 벡터 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) != null) {
			Log.d("","\n"+"[Sensor.TYPE_ROTATION_VECTOR [벡터] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_ROTATION_VECTOR [벡터] : 미지원]");
		}
		//========주위온도 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE) != null) {
			Log.d("","\n"+"[Sensor.TYPE_TEMPERATURE [온도감지] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_TEMPERATURE [온도감지] : 미지원]");
		}
		//========발걸음 횟수 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
			Log.d("","\n"+"[Sensor.TYPE_STEP_COUNTER [발걸음횟수] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_STEP_COUNTER [발걸음횟수] : 미지원]");
		}
		//========발걸음 감지 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR) != null) {
			Log.d("","\n"+"[Sensor.TYPE_STEP_DETECTOR [발걸음감지] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_STEP_DETECTOR [발걸음감지] : 미지원]");
		}
		//========모션 트리거 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION) != null) {
			Log.d("","\n"+"[Sensor.TYPE_SIGNIFICANT_MOTION [모션트리거] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_SIGNIFICANT_MOTION [모션트리거] : 미지원]");
		}
		//========심박수 측정 센서========
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) != null) {
			Log.d("","\n"+"[Sensor.TYPE_HEART_RATE [심박수] : 지원]");
		}
		else {
			Log.e("","\n"+"[Sensor.TYPE_HEART_RATE [심박수] : 미지원]");
		}

		Log.d("//===========//","================================================");
		Log.d("---","---");
	}
	catch (Exception e){
		e.printStackTrace();
	}
}

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. SensorManager 객체를 사용해 기기 센서 지원 여부 확인 실시

* 2. 각 속성값이 null이면 지원하는 않는 경우입니다

/* =========================== */

반응형
Comments