Notice
Recent Posts
Recent Comments
Link
투케이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이면 지원하는 않는 경우입니다
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments