我从大学拿到了一个项目来发布弹出通知
所以,我把手机当作灯塔。并通过检测来自它的信标的主要和次要来获得通知进行验证。
所以我会在检测到一些灯塔后发布主要和次要,但我从这个代码发出垃圾邮件,所以在日志中我连续得到相同的主要和次要,如果灯塔一个,我怎么能发布主要和次要,并且不同主要发布两次如果灯塔两个等等
`@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) { }
}
`
好吧,让我们为您的问题提供一些伪代码。
ArrayList<Beacon> searchedBeaconsList = new ArrayList(); // Declare it global
if(searchedBeaconsList != null && searchedBeaconsList.isEmpty){
searchedBeaconsList.add(searchedBeacon)
}else if(!searchedBeaconsList.contains(searchedBeacon)){
searchedBeaconsList.add(searchedBeacon)
}
通过这种方式,您将始终一次获得单个信标,其他垃圾邮件将被拒绝,同时清除列表,同时保持屏幕或应用程序被销毁。
我希望这能解决你的问题。