信标如何检测主要和次要超过1?

问题描述 投票:0回答:1

我从大学拿到了一个项目来发布弹出通知

所以,我把手机当作灯塔。并通过检测来自它的信标的主要和次要来获得通知进行验证。

所以我会在检测到一些灯塔后发布主要和次要,但我从这个代码发出垃圾邮件,所以在日志中我连续得到相同的主要和次要,如果灯塔一个,我怎么能发布主要和次要,并且不同主要发布两次如果灯塔两个等等

`@Override
public void onBeaconServiceConnect() {
    beaconManager.removeAllRangeNotifiers();
    beaconManager.addRangeNotifier(new RangeNotifier() {
        @Override
        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
            for (Beacon temp : beacons) {
                    if (beacons.size() > 0) {
                        MajorBeacon MajID = new MajorBeacon("Major:"+temp.getId2().toString(),"Minor"+temp.getId3().toString());

                        MajID.setMajor(temp.getId2().toString());
                        Log.i(TAG, "The first beacon I see is about " + beacons.iterator().next().getDistance() + " meters away.");
                 Log.i(TAG2,"Hello major id kamu:"+MajID.getMajor());
                        Log.i(TAG3,"Hello minor id kamu:33");
                       Post(MajID);
                    }

            }
        }
    });


    try {
        beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId",null , null, null));
    } catch (RemoteException e) {    }
}

`

android beacon altbeacon
1个回答
1
投票

好吧,让我们为您的问题提供一些伪代码。

    ArrayList<Beacon> searchedBeaconsList = new ArrayList(); // Declare it global
    if(searchedBeaconsList != null && searchedBeaconsList.isEmpty){
    searchedBeaconsList.add(searchedBeacon) 
    }else if(!searchedBeaconsList.contains(searchedBeacon)){
    searchedBeaconsList.add(searchedBeacon)
   }

通过这种方式,您将始终一次获得单个信标,其他垃圾邮件将被拒绝,同时清除列表,同时保持屏幕或应用程序被销毁。

我希望这能解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.