Motion
Contents
Motion 은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다.
라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.
Motion 은 단말의 센서를 이용하여 단말의 X, Y, Z 값을 얻을 수 있다. Motion 기능은 Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다.
Motion 을 통해 전달되는 좌표 값은 MotionData 에 담아 전달되며 아래의 클래스 형태로 구성되어 있으며 세부 내용은 하단을 참조한다.
MotionData Class
public class MotionData implements Serializable {
private float x,y,z;
private long timestamp;
}
private float x,y,z;
private long timestamp;
}
MotionData
필드 | 설명 |
---|---|
x | 단말의 x 값 |
y | 단말의 y 값 |
z | 단말의 z 값 |
timestamp | 이벤트 발생 시간 |
getCurrent
getCurrent 는 단말의 현재 X, Y, Z 값을 반환 한다.
Example
// 3.10.18 이상
DAPMotion.getCurrent(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
val manager = MotionManager(activity)
manager.register();
DAPMotion.getCurrent(manager) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
manager.unregister();
}
DAPMotion.getCurrent(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
val manager = MotionManager(activity)
manager.register();
DAPMotion.getCurrent(manager) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
manager.unregister();
}
MotionManager manager = new MotionManager(activity);
manager.register();
// 3.10.18 이상
DAPMotion.getCurrent(manager, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
// 3.10.18 이하
DAPMotion.getCurrent(manager, (result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
break;
}
manager.unregister();
});
manager.register();
// 3.10.18 이상
DAPMotion.getCurrent(manager, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
// 3.10.18 이하
DAPMotion.getCurrent(manager, (result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
break;
}
manager.unregister();
});
watch
watch 는 단말의 현재 X, Y, Z 값을 주기적으로 반환 한다.
Example
val manager = MotionManager(activity)
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
val watchId = "100"
// 3.10.18 이상
DAPMotion.watch(activity, manager, watchId, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPMotion.watch(manager, watchId) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
}
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
val watchId = "100"
// 3.10.18 이상
DAPMotion.watch(activity, manager, watchId, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPMotion.watch(manager, watchId) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
}
MotionManager manager = new MotionManager(activity);
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
String watchId = "100";
// 3.10.18 이상
DAPMotion.watch(manager, watchId, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPMotion.watch(manager, watchId, (result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
break;
}
});
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
String watchId = "100";
// 3.10.18 이상
DAPMotion.watch(manager, watchId, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPMotion.watch(manager, watchId, (result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
break;
}
});
clearWatch
clearWatch 는 주기적으로 위치 정보를 받기 위해 설정한 watch 를 멈춘다. 이때 사용되는 기준값으 watch 에 사용된 watchId 값을 전달하면 된다.
Example
val manager = MotionManager(activity)
val watchId = "100"
// 3.10.18 이상
DAPMotion.clearWatch(activity, manager, watchId, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
// 3.10.18 이하
DAPMotion.clearWatch(manager, watchId)
manager.unregister()
val watchId = "100"
// 3.10.18 이상
DAPMotion.clearWatch(activity, manager, watchId, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
// 3.10.18 이하
DAPMotion.clearWatch(manager, watchId)
manager.unregister()
MotionManager manager = new MotionManager(activity);
String watchId = "100";
// 3.10.18 이상
DAPMotion.clearWatch(activity, manager, watchId, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
// 3.10.18 이하
DAPMotion.clearWatch(manager, watchId);
manager.unregister();
String watchId = "100";
// 3.10.18 이상
DAPMotion.clearWatch(activity, manager, watchId, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
// 3.10.18 이하
DAPMotion.clearWatch(manager, watchId);
manager.unregister();