안녕하세요. IT김군입니다.


cordova IBeacon Plugin을 사용하면서 Advertise를 하시는 분들이라면 감도에 대해 궁금해하실텐데요.


저도 작업하다가 자주 까먹는 바람에 여기에 적어놓습니다.


IOS는 우선 Cordova Plugin으로 감도 조절이 되지 않는 것으로 알고 있습니다. (Native는 어떨지 모르겠네요.)


Android는 아래와 같이 감도 조절을 하시면 됩니다.


우선 플러그인을 추가해줍니다.

ionic cordova plugin add cordova-plugin-ibeacon
npm install --save @ionic-native/ibeacon


그 다음 app.module.ts에 선언해줍니다.

import { IBeacon } from '@ionic-native/ibeacon';

proviers : [
   IBeacon
]


/plugins/com.unarin.cordova.beacon/src/android/LocationManager.java


startAdvertising() 부분 중간에 beaconTransmitter의 값을 초기화하는 부분이 있습니다.


그 밑에

beaconTransmitter.setAdvertiseMode('설정값A');
beaconTransmitter.setAdvertiseTxPowerLevel('설정값B');


위와 같이 소스를 넣어주시고 저장해주시면 됩니다.


설정값 A는 송출 빈도를 설정하는 부분으로


ADVERTISE_MODE_LOW_POWER = 0     / 1초에 1번


ADVERTISE_MODE_BALANCED = 1    / 1초에 3번


ADVERTISE_MODE_LOW_LATENCY = 2    / 1초에 10번


으로 설정가능하며 (뒤에 number형으로 값을 넣으셔도 무방하고 앞에 상수로 넣으셔도 됩니다. 상수는 beaconTransmitter.ADVERTISE_MODE_LOW_POWER 형식으로 사용하시면 됩니다.),


설정값 B는 송출 강도를 설정하는 부분으로


ADVERTISE_TX_POWER_ULTRA_LOW = 0


ADVERTISE_TX_POWER_LOW = 1


ADVERTISE_TX_POWER_MEDIUM = 2


ADVERTISE_TX_POWER_HIGH =  3


으로 설정할 수 있습니다(뒤에 number형으로 값을 넣으셔도 무방하고 앞에 상수로 넣으셔도 됩니다. 상수는 beaconTransmitter.ADVERTISE_TX_POWER_HIGH 형식으로 사용하시면 됩니다.).


ex)

beaconTransmitter.setAdvertiseMode(beaconTransmitter.ADVERTISE_MODE_LOW_POWER);
beaconTransmitter.setAdvertiseTxPowerLevel(beaconTransmitter.ADVERTISE_TX_POWER_HIGH);
beaconTransmitter.setAdvertiseMode(0);
beaconTransmitter.setAdvertiseTxPowerLevel(2);


궁금하신 사항은 댓글달아주세요.


감사합니다.


WRITTEN BY
IT김군
S/W 개발자 김군의 메모장

,