motion
motion 은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다.
라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.
motion 은 단말의 센서를 이용하여 단말의 X, Y, Z 값을 얻을 수 있다. motion 기능은 Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다.
motion 을 통해 전달되는 좌표 값은 MotionData 에 담아 전달되며 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
val manager = MotionManager(this@MainActivity)
manager.register()
DAPMotion.getCurrent(this@MainActivity, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
manager.register()
DAPMotion.getCurrent(this@MainActivity, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
MotionManager manager = new MotionManager(MainActivity.this);
manager.register();
DAPMotion.getCurrent(MainActivity.this, manager, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
manager.register();
DAPMotion.getCurrent(MainActivity.this, manager, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
watch
watch 는 단말의 현재 X, Y, Z 값을 주기적으로 반환 한다.
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
manager | 동작센서 관라자 | M | |
watchId | 임의의 문자열 | M | |
Example
val manager = MotionManager(this@MainActivity)
manager.register(SensorManager.SENSOR_DELAY_NORMAL)
val watchId = "100"
DAPMotion.watch(this@MainActivity, manager, watchId, {
// TODO
}) {
// TODO
}
manager.register(SensorManager.SENSOR_DELAY_NORMAL)
val watchId = "100"
DAPMotion.watch(this@MainActivity, manager, watchId, {
// TODO
}) {
// TODO
}
MotionManager manager = new MotionManager(MainActivity.this);
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
String watchId = "100";
DAPMotion.watch(MainActivity.this, manager, watchId, result -> {
// TODO
}, e -> {
// TODO
});
manager.register(SensorManager.SENSOR_DELAY_NORMAL);
String watchId = "100";
DAPMotion.watch(MainActivity.this, manager, watchId, result -> {
// TODO
}, e -> {
// TODO
});
clearWatch
clearWatch 는 주기적으로 위치 정보를 받기 위해 설정한 watch 를 멈춘다. 이때 사용되는 기준값으 watch 에 사용된 manager 와 watchId 값을 전달하면 된다.
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
manager | 동작센서 관라자 | watch 에서 생성한 manager 사용 | M |
watchId | watch 아이디 | 임의의 문자열 watch 에서 생성한 watchId 사용 | M |
Example
val manager = MotionManager(this@MainActivity)
val watchId = "100"
DAPMotion.clearWatch(this@MainActivity, manager, watchId, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
val watchId = "100"
DAPMotion.clearWatch(this@MainActivity, manager, watchId, {
// TODO
manager.unregister()
}) {
// TODO
manager.unregister()
}
MotionManager manager = new MotionManager(MainActivity.this);
String watchId = "100";
DAPMotion.clearWatch(MainActivity.this, manager, watchId, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
String watchId = "100";
DAPMotion.clearWatch(MainActivity.this, manager, watchId, result -> {
// TODO
manager.unregister();
}, e -> {
// TODO
manager.unregister();
});
Error Code
Code | Cause | Comment |
---|---|---|
E12300 | 파라메터 값이 잘못되어 있을 경우 | |
E12301 | 전달된 액션 값이 알 수 없는 액션일 경우 | |
E12302 | watch 아이디 값이 null 이거나 빈 값인 경우 | |
E12303 | 화면 갱신 시간 정보가 0 ~ 3 정수값이 아닌 경우 | |
E12350 | 실행 중 오류가 발생 되었을 경우 | |
E12351 | watch 요청 시 watch 아이디 값이 존재하는 경우 | |
E12352 | clearWatch 요청 시 watch 아이디 값을 찾을 수 없는 경우 | |
E12353 | Motion 정보를 얻기위한 서비스가 지원하지 않는 경우 | |
E12399 | 알 수없는 오류가 발생 되었을 경우 | |