Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果应用程序检测到带有Pibeacon默认UUID的altbeacon,并且次要或id3为1,我如何插入代码或执行操作?_Android_Ibeacon_Ibeacon Android_Android Ibeacon_Altbeacon - Fatal编程技术网

Android 如果应用程序检测到带有Pibeacon默认UUID的altbeacon,并且次要或id3为1,我如何插入代码或执行操作?

Android 如果应用程序检测到带有Pibeacon默认UUID的altbeacon,并且次要或id3为1,我如何插入代码或执行操作?,android,ibeacon,ibeacon-android,android-ibeacon,altbeacon,Android,Ibeacon,Ibeacon Android,Android Ibeacon,Altbeacon,我是android开发的新手,我正在使用altbeacons库和altbeacons的参考应用程序。我们还有2个Pibeacons。。。。。。。引用工作正常,能够检测到两个信标…如果应用程序检测到特定信标,我想做一些事情…例如,如果我检测到信标接近,我想显示一个字符串…前2个if语句工作正常,但如果我添加了一个条件以确定哪个信标接近,则第3个if语句不工作工作…第一个信标小调是1,第二个是2 public void didRangeBeaconsInRegion(Collection&l

我是android开发的新手,我正在使用altbeacons库和altbeacons的参考应用程序。我们还有2个Pibeacons。。。。。。。引用工作正常,能够检测到两个信标…如果应用程序检测到特定信标,我想做一些事情…例如,如果我检测到信标接近,我想显示一个字符串…前2个if语句工作正常,但如果我添加了一个条件以确定哪个信标接近,则第3个if语句不工作工作…第一个信标小调是1,第二个是2

    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
    if (beacons.size() > 0) {
        for (Beacon beacon: beacons) {
            if(BeaconProximity.getProximityString(beacon.getDistance()) == "Near"){
                logToDisplay("Hello");              
            }

            if(BeaconProximity.getProximityString(beacon.getDistance()) == "Immediate"){
                logToDisplay("Hi");             
            }

            if(BeaconProximity.getProximityString(beacon.getDistance()) == "Near" && beacon.getId3 == Identifier.parse("1"){

            logToDisplay("World");              
            }
       }
    }      
如果我只显示beacon.getId3和Identifier.parse1,就像下面的代码logtodisplaybacon.getId3+=+Identifier.parse1一样,它将输出1=1
他们是平等的,但如果我把这作为一个条件。。。它不工作…所以我不知道是什么问题,或者我遗漏了什么,或者如果我在近距离、远距离、近距离检测到特定的信标,是否有其他方法插入命令或代码?

至少有一个问题。在Java中,不能将字符串与==进行比较,因为这会检查它们是否是完全相同的对象。而不是:

BeaconProximity.getProximityString(beacon.getDistance()) == "Near"
使用:


其次,我不确定BeaconProximition类做什么。如果您的代码与上述修复程序不兼容,则这不是标准的一部分,您应该发布BeaconProximition类的定义。

谢谢david…..KB24是我的朋友帐户,我是问这个问题的人……我使用Justin O'Dwyer的Beacon Scanner&Logger应用程序中的beaconhelper类,它也使用altbeacon库,只需将其重命名为BeaconProximition即可确定信标是否近、远,立即或未知…实际上,下面的第1个代码只需比较即可正常工作==

    BeaconProximity.getProximityString(beacon.getDistance()) == "Near" 
但是如果我在下面添加另一个带有代码的条件。。。这是行不通的

    beacon.getId3() == Identifier.parse("1")
你的建议解决了我的问题。。。。。使用下面的代码

    beacon.getId3().equals(Identifier.parse("1"))

我不熟悉Beacon,但你真的想用==?比较字符串吗?你在哪里找到BeaconProximition类?是的,Java中的任何对象都有相同的一般问题。您不能将不同的对象与==进行相等比较,必须使用.equals方法。我现在在AltBeacon中没有看到BeaconProximition。它过时了吗?我们现在如何获得等效的iOS邻近字符串?BeaconProximition类不是库的一部分。如果您想在iOS上获得即时/近/远的等效值,只需使用beacon.geDistance即可。值<0.5表示立即,0.5-3.0表示接近,大于3.0表示远。
    beacon.getId3().equals(Identifier.parse("1"))