beacon
Contents
beacon 는 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다.
라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.
beacon 기능은 Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다.
비콘 정보 검색을 통해 전달되는 값은 BeaconData 에 담아 전달되며 BeaconData 클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
BeaconData Class
public final class BeaconData implements Serializable {
public final String uuid;
public final int major;
public final int minor;
public final int rssi;
}
public final String uuid;
public final int major;
public final int minor;
public final int rssi;
}
BeaconData
필드 | 설명 | 비고 |
---|---|---|
uuid | 비콘 고유 ID | 16bytes 32개의 16진수로 표현되며, 총 36개문자(32개 문자와 4개의 하이픈)으로 구성 |
major | 비콘 major 번호 | 2bytes (1 ~ 65535의 정수) |
minor | 비콘 minor 번호 | 2bytes (1 ~ 65535의 정수) |
rssi | 비콘 신호세기 | –99 ~ -35의 실수 |
startScan
주변의 비콘 정보를 검색해서 BeaconData 형태로 전달 받는데 BeaconFilter 에 설정 된 정보와 일치되는 비콘 정보만 반환 된다.
BeaconFilter 클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
BeaconFilter Class
public final class BeaconFilter implements Serializable {
public final String uuid;
public final int major;
public final int minor;
}
public final String uuid;
public final int major;
public final int minor;
}
BeaconFilter
필드 | 설명 | 비고 | M/O |
---|---|---|---|
uuid | 비콘 고유 ID | 16bytes 32개의 16진수로 표현되며, 총 36개문자(32개 문자와 4개의 하이픈)으로 구성 | M |
major | 비콘 major 번호 | 2bytes (1 ~ 65535의 정수) | O |
minor | 비콘 minor 번호 | 2bytes (1 ~ 65535의 정수) | O |
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
observer | 비콘정보 관찰자 | M | |
scanId | 스캔 아이디 | 임의의 문자열 | M |
filter | 스캔 필터 | BeaconFilter | M |
Example
val sacnId = "1000"
val observer = BeaconObserver(this@MainActivity)
val filter = BeaconFilter.builder()
.uuid("e2c56db5-dffb-48d2-b060-d0f5a71096e0")
.build()
DAPBeacon.startScan(this@MainActivity, observer, sacnId, filter, {
//TODO
}) {
//TODO
}
val observer = BeaconObserver(this@MainActivity)
val filter = BeaconFilter.builder()
.uuid("e2c56db5-dffb-48d2-b060-d0f5a71096e0")
.build()
DAPBeacon.startScan(this@MainActivity, observer, sacnId, filter, {
//TODO
}) {
//TODO
}
String sacnId = "1000";
BeaconObserver observer = new BeaconObserver(MainActivity.this);
BeaconFilter filter = BeaconFilter.builder()
.uuid(""e2c56db5-dffb-48d2-b060-d0f5a71096e0"")
.build();
DAPBeacon.startScan(MainActivity.this, observer, sacnId, filter, result -> {
//TODO
}, e -> {
//TODO
});
BeaconObserver observer = new BeaconObserver(MainActivity.this);
BeaconFilter filter = BeaconFilter.builder()
.uuid(""e2c56db5-dffb-48d2-b060-d0f5a71096e0"")
.build();
DAPBeacon.startScan(MainActivity.this, observer, sacnId, filter, result -> {
//TODO
}, e -> {
//TODO
});
stopScan
동작 중인 비콘 정보 검색을 종료 하는 기능으로 startScan 을 요청할 때 등록하였던 두 번째 인자인 observer, 세 번째 인자인 watchId 와 동일한 값을 입력해야 한다.
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
observer | 비콘정보 관찰자 | startScan 에서 생성한 observer 사용 | M |
scanId | 스캔 아이디 | 임의의 문자열 startScan 에서 생성한 scanId 를 사용 | M |
Example
val sacnId = "1000"
val observer = BeaconObserver(this@MainActivity vity)
DAPBeacon.stopScan (this@MainActivity, observer, sacnId, {
//TODO
}) {
//TODO
}
val observer = BeaconObserver(this@MainActivity vity)
DAPBeacon.stopScan (this@MainActivity, observer, sacnId, {
//TODO
}) {
//TODO
}
String sacnId = "1000";
BeaconObserver observer = new BeaconObserver(MainActivity.this);
DAPBeacon.stopScan(MainActivity.this, observer, sacnId, result -> {
//TODO
}, e -> {
//TODO
});
BeaconObserver observer = new BeaconObserver(MainActivity.this);
DAPBeacon.stopScan(MainActivity.this, observer, sacnId, result -> {
//TODO
}, e -> {
//TODO
});
Error Code
Code | Cause | Comment |
---|---|---|
E12700 | 파라메터 값이 잘못되어 있을 경우 | |
E12701 | 전달된 액션 값이 알 수 없는 액션일 경우 | |
E12702 | scan 아이디 값이 null 이거나 빈 값인 경우 | |
E12703 | 비콘 고유 ID 값이 UUID 형식에 맞지않는 경우 | |
E12704 | 비콘 major 번호가 1 ~ 65535 사이의 정수값이 아닌 경우 | |
E12705 | 비콘 minor 번호가 1 ~ 65535 사이의 정수값이 아닌 경우 | |
E12750 | 실행 중 오류가 발생 되었을 경우 | |
E12751 | 블루투스 설정이 비활성화 되어있는 경우 | |
E12752 | startScan 요청 시 scan 아이디 값이 존재하는 경우 | |
E12753 | stopScan 요청 시 scan 아이디 값을 찾을 수 없는 경우 | |
E12754 | 비콘 정보를 얻기위한 서비스가 지원하지 않는 경우 | |
E12799 | 알 수없는 오류가 발생 되었을 경우 | |