当前位置: 首页 > 知识库问答 >
问题:

Alt信标不稳定

鲁向明
2023-03-14

我正在基于Alt Beacon构建一个android应用程序。首先,我要说的是,我的测试设备是运行Android4.4的Digiland(P-O-S)平板电脑。

我使用的半径网络USB信标和他们的Alt信标库在这里找到:https://github.com/AltBeacon/android-beacon-library

在我自己的应用程序和随库提供的参考应用程序中,我看到信标的显著不稳定性/极慢的检测时间。例如,您可以在下面看到参考应用程序的日志。平板电脑始终离信标不超过1/2米。

以前有人见过这种行为吗?我做错什么了吗?信标上的广播速率似乎设置为10Hz,功率似乎设置为最大值。我应该换一台不同的设备,在上面试一试吗?我看到其他一些帖子建议关闭wifi,我也这么做了,这篇日志来自wifi关闭的试用。

我应该注意的一点是,我在应用程序子类中使用以下代码块增加了扫描频率:

beaconManager.setBackgroundBetweenScanPeriod(9000l);
beaconManager.setBackgroundScanPeriod(1000l);
beaconManager.setForegroundBetweenScanPeriod(9000l);
beaconManager.setForegroundScanPeriod(1000l);
try{
    beaconManager.updateScanPeriods();
}catch (RemoteException e){
    e.printStackTrace();
}

我不确定这是否做得不正确,但当我删除它时,我仍然会看到下面日志中描述的相同行为,只是时间稍微长了一点。

如果有人给我任何建议,我都会非常感激,因为我觉得我在这上面转轮子!

07-01 15:23:59.005  10771-10771/org.altbeacon.beaconreference D/ReferenceApplication﹕ setting up background monitoring for beacons and power saving
07-01 15:23:59.655  10771-10816/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:23:59.655  10771-10816/org.altbeacon.beaconreference D/ReferenceApplication﹕ auto launching MainActivity
07-01 15:24:20.154  10771-11297/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:24:39.174  10771-11486/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:25:00.132  10771-11647/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:25:09.472  10771-11730/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:25:30.123  10771-11871/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:25:39.173  10771-11954/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:26:00.065  10771-12070/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:26:29.099  10771-12083/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:26:29.100  10771-12083/org.altbeacon.beaconreference D/ReferenceApplication﹕ Sending notification.
07-01 15:26:40.112  10771-12096/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:27:19.120  10771-12127/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:27:19.120  10771-12127/org.altbeacon.beaconreference D/ReferenceApplication﹕ Sending notification.
07-01 15:27:40.041  10771-12208/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:27:59.110  10771-12786/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:28:30.144  10771-13052/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:28:39.202  10771-13131/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:28:50.133  10771-13226/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:29:09.125  10771-13375/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:29:30.119  10771-13452/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:29:49.144  10771-13473/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:30:00.060  10771-13510/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:30:19.134  10771-13552/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:30:19.135  10771-13552/org.altbeacon.beaconreference D/ReferenceApplication﹕ Sending notification.
07-01 15:30:30.096  10771-13560/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:31:09.124  10771-13575/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:31:09.125  10771-13575/org.altbeacon.beaconreference D/ReferenceApplication﹕ Sending notification.
07-01 15:31:20.110  10771-13576/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:31:29.101  10771-13578/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.
07-01 15:31:29.101  10771-13578/org.altbeacon.beaconreference D/ReferenceApplication﹕ Sending notification.
07-01 15:32:40.101  10771-13647/org.altbeacon.beaconreference D/ReferenceApplication﹕ did exit region
07-01 15:32:59.131  10771-13651/org.altbeacon.beaconreference D/ReferenceApplication﹕ did enter region.

一个更有趣的事情要注意的是,当我做一个过滤器onScanResult在日志中,我看到这个:

07-01 15:45:49.074  10771-10839/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=24:4B:03:2E:00:D9 RSSI=-91
07-01 15:45:49.117    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=00:07:80:1E:7E:B7, rssi=-56
07-01 15:45:49.120  10771-10784/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=00:07:80:1E:7E:B7 RSSI=-56
07-01 15:45:49.365    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=62:44:C6:64:4D:A5, rssi=-76
07-01 15:45:49.368  10771-10783/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=62:44:C6:64:4D:A5 RSSI=-76
07-01 15:45:59.082    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=62:44:C6:64:4D:A5, rssi=-77
07-01 15:45:59.084  10771-10784/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=62:44:C6:64:4D:A5 RSSI=-77
07-01 15:45:59.130    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=00:07:80:1E:7E:B7, rssi=-59
07-01 15:45:59.133  10771-10783/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=00:07:80:1E:7E:B7 RSSI=-59
07-01 15:45:59.140    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=24:4B:03:2E:00:D9, rssi=-76
07-01 15:45:59.141  10771-10839/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=24:4B:03:2E:00:D9 RSSI=-76
07-01 15:46:09.115    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=00:07:80:1E:7E:B7, rssi=-58
07-01 15:46:09.117  10771-10783/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=00:07:80:1E:7E:B7 RSSI=-58
07-01 15:46:09.124    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=24:4B:03:2E:00:D9, rssi=-86
07-01 15:46:09.126  10771-10839/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=24:4B:03:2E:00:D9 RSSI=-86
07-01 15:46:09.135    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=62:44:C6:64:4D:A5, rssi=-76
07-01 15:46:09.139  10771-10784/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=62:44:C6:64:4D:A5 RSSI=-76
07-01 15:46:19.060    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=24:4B:03:2E:00:D9, rssi=-91
07-01 15:46:19.062  10771-10839/org.altbeacon.beaconreference D/BluetoothAdapter﹕ onScanResult() - Device=24:4B:03:2E:00:D9 RSSI=-91
07-01 15:46:19.092    1425-1495/? D/BtGatt.GattService﹕ onScanResult() - address=00:07:80:1E:7E:B7, rssi=-64

00:07:80设备是我的灯塔,但我完全不知道24:4B:03设备是什么时候。有人知道我如何获取更多关于该设备的数据吗?它有可能干扰我的实际信号吗?我试过两者都用

Region region = new Region("backgroundRegion",
                Identifier.parse("2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"), null, null);

Region region = new Region("backgroundRegion",null, null, null); 

不幸的是,我得到了这两种变化的随机波动。

更新:

我还运行了这个与beaconManager.set调试(true)标志激活。这是结果日志

更新2:

我把我的信标切换到只为iBeacon广播,这个问题似乎消失了大约10分钟。不幸的是,问题很快又出现了。翻看日志,我现在看到的是完全不同的。日志可以在这里看到。我的假设是,问题在于这一行:

07-01 21:46:31.035    2499-2499/com.avtar.truckkeeper D/CycledLeScanner﹕ cancel wakeup alarm: PendingIntent{41f32070: android.os.BinderProxy@41d8f750}

任何想法/帮助将不胜感激!

共有1个答案

施季
2023-03-14

根据对答案底部链接的“结果日志”的分析,我怀疑发生了几件事:

  1. 发送信标配置为同时发送AltBeacon和iBeacon数据包

所有这些因素共同创造了一场完美Storm,引发了这些问题:

由于(4)中描述的缺陷以及(3)中描述的信标处于可连接模式的事实,这意味着每个扫描周期仅拾取一个数据包。由于信标正在发送如(1)所述的交织广告,这意味着该数据包有50-50%的可能性将是iBeacon数据包。如果它是一个iBeacon数据包,因为库没有按照(2)中的描述配置为检测iBeacon,所以在该周期中将不会检测到任何iBeacon。由于扫描周期为10秒,如5所述,这将导致间歇性区域退出和重新进入。(如果在10秒内没有看到信标,库将触发区域退出。)

改变这些事情中的任何一个都可能会让这个问题消失:

>

  • 重新配置您的信标以关闭iBeacon传输(或配置库以检测iBeacon传输。)

    缩短信标的连接性超时时间,例如60秒之后。一旦它不再可连接,平板电脑将能够在每个扫描周期获得多个数据包,问题就会消失。

    减少扫描周期的时间长度。如果在前景中保留1100ms扫描时间和0ms扫描时间之间的默认值,那么库将有9个周期在10秒区域超时触发之前检测信标。在9个周期内没有检测到信标的50-50几率将成为0.5^9 = 0.1%机会。

  •  类似资料:
    • 我尝试了以及鼠标按钮和修改键。最后我到了一个地步,我被它的行为弄糊涂了。 通常我使用

    • 问题内容: 我正在运行Jenkins 1.411版,并使用Maven进行构建。 即使应用程序构建成功,Jenkins仍将其视为不稳定的构建。我已禁用所有测试以隔离问题。 问题答案: 我前一段时间使用hudson / jenkins,但您应该看看Jenkins术语 不稳定的构建 : 如果构建成功构建并且一个或多个发布者报告该构建不稳定,则该构建不稳定。 例如,如果配置了JUnit发布者并且测试失败,

    • 问题内容: 目前,我正在Jenkins中构建和测试我的应用。如果作业中的测试失败,则将构建标记为“不稳定”。即使测试失败,是否有可能将构建标记为“稳定”?如果代码未编译,则将构建标记为“失败”,这很好。 问题答案: 有一个名为Jenkins Text Finder的插件:https : //wiki.jenkins-ci.org/display/JENKINS/Text- finder+Plugi

    • 我试图添加ALT标签到我的网站上的自定义船旋转木马和船页面。不知道我需要添加什么PHP以及把它放在哪里。旋转木马和页面上的图像都是缩略图。 我有一页。php和boat_旋转木马。php,这是我认为需要添加代码的地方。 不确定我是否应该将所有代码添加到此帖子。 这是指向该页面的链接https://www.embarkboathire.com.au/boats/ 你可以看到底部的船,每页有15艘。 }

    • 本文向大家介绍JS获得图片alt信息的方法,包括了JS获得图片alt信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS获得图片alt信息的方法。分享给大家供大家参考。具体如下: 下面的JS代码可通过图片的alt属性获得图片的提示信息 希望本文所述对大家的javascript程序设计有所帮助。

    • 问题内容: 我已经设置了swift项目来使用sqlite。有时,插入时实际上并没有插入正确(或全部)的值。我知道,因为我重新启动了该应用程序,并且当我再次输入时,输入是随机错误(未插入内容)或为零。但有时是正确的。 这是我设置的位置,是的,插入之前数据正确。 您可以在中间看到注释掉的println,如果没有注释掉,则itemName有时会成为该字符串的一部分。 问题答案: 我有同样的问题。我找到了