2017-11-18 16 views
0

나는 Android Beacon Library AltBeacon을 사용합니다. 마이크로 칩 rn4870을 감지하지 못하고 iBeacons 만 표시합니다. 이 BeaconParser를 사용하여 주변의 모든 신호를 감지합니다. 누군가가 어떻게 탐지 할 수 있는지 설명 할 수 있습니까 마이크로 칩 rn4870.AltBeacon은 Micropchip rn4870 탐지 장치를 탐지하지 않고 iBeacons 만 탐지합니다.

beaconManager = BeaconManager.getInstanceForApplication(this); 
    // To detect proprietary beacons, you must add a line like below corresponding to your beacon 
    // type. Do a web search for "setBeaconLayout" to get the proper expression. 

    ArrayList<BeaconParser> parsers = new ArrayList<>(); 

    parsers.add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25")); 
    parsers.add(new BeaconParser().setBeaconLayout("x,s:0-1=feaa,m:2-2=20,d:3-3,d:4-5,d:6-7,d:8-11,d:12-15")); 
    parsers.add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=00,p:3-3:-41,i:4-13,i:14-19")); 
    parsers.add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-20v")); 
    parsers.add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_TLM_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_URL_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.URI_BEACON_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.ALTBEACON_LAYOUT)); 

    beaconManager.getBeaconParsers().addAll(parsers); 
    beaconManager.bind(this); 

답변

0

마이크로 칩 rn4870은 블루투스 LE 모듈이며 반드시 비콘 송신기는 아닙니다. 이 하드웨어로 비콘 송신기를 구축 할 수 있지만 특정 비콘 포맷을 전송하는 펌웨어를로드해야합니다. 그렇게하면 iBeacon, AltBeacon 또는 다양한 Eddystone 패킷을 전송할 수 있습니다.

결론 : 질문에 표시된 코드가 문제가 아니며 문제는 송신기 측에 있습니다.

+0

어떻게하면됩니까? –

+0

불행히도 rn4870에 사용자 정의 비콘 펌웨어를로드하는 방법에 대한 자습서는 StackOverflow.com에 대한 질문의 범위를 벗어납니다. 공급 업체에 문의하여 이러한 참조 펌웨어를 제공하는지 확인할 수 있습니다. – davidgyoung