You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android环境下无法扫描到全部Estimote UWB Beacon问题求助

无法发现全部Estimote UWB Beacon的排查方案

我在Estimote云端注册了3台UWB Beacon,放置在同一楼层的不同位置,但Android设备进入信号范围后,只能获取到1台Beacon的信息,恳请帮忙排查问题。


相关代码

private void beaconRegionConfig() {

    BeaconRegion beaconRegion = new BeaconRegion("", null, null, null);
    beaconManager.setBackgroundScanPeriod(5000, 30000);
    beaconManager.setForegroundScanPeriod(10000, 5000);

    beaconManager.connect(() -> {
        beaconManager.startRanging(beaconRegion);
        beaconManager.setConfigurableDevicesListener(configurableDevices -> {
            Log.e(TAG, "configurableDevicesList =  " + configurableDevices);
        
        });
    
    });


    // Set up ranging for get all beacons
    beaconManager.setRangingListener(new BeaconManager.BeaconRangingListener() {
        @Override
        public void onBeaconsDiscovered(BeaconRegion region, List<Beacon> beacons) {
            // Handle discovered beacons here
            //Log.e(TAG, "region: " + region);
            Log.e(TAG, "region " + region + " , _beaconsSize: " + beacons.size() + " ," + beacons);
        }
    });
 
}

当前输出结果

_beaconsSize: 1 ,[Beacon{macAddress=[F0:1A:A0:11:D5:A8], 
proximityUUID=5861636c-716e-2301-be01-6c731222f008, major=1, 
  minor=0, measuredPower=-53, rssi=-102}]

Manifest权限配置

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

<!-- for beacons-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>

Gradle依赖

implementation 'com.estimote:sdk:1.0.12'

云端注册的3台Beacon信息

ice
Identifier: a7....
Tags:IceTag
Packets:None
Location:385,..., India

lemon
Identifier:79.....
Tags:LemonTag
Packets:None
Location:385,..., India

caramel
Identifier:db....
Tags:Test
Packets:None
Location: 385, ...,India

排查方案

1. 配置Beacon广播数据包

云端显示3台Beacon的Packets字段为None,Estimote UWB Beacon必须配置广播数据包(如Estimote Telemetry或iBeacon)才能被设备识别。登录Estimote云端后台,为每台Beacon开启广播配置。

2. 调整扫描周期参数

当前前台扫描间隔为5000ms,后台间隔为30000ms,过长的间隔容易导致漏扫。建议缩短间隔,比如前台配置改为:

beaconManager.setForegroundScanPeriod(3000, 1000);

后台扫描如果需要更高频率,同步缩短间隔时间。

3. 补全蓝牙权限申请逻辑

Android 12+对蓝牙权限要求更严格,BLUETOOTH_SCAN需要动态申请,后台扫描还需配合位置权限或声明neverForLocation标记。检查代码中是否完成了所有必要权限的动态申请流程。

4. 验证Beacon硬件状态

  • 检查另外两台Beacon的电量,低电量会导致广播功率衰减;
  • 将测试设备直接靠近未被发现的Beacon,排除距离、障碍物导致的信号遮挡问题。

5. 升级SDK版本

当前使用的1.0.12版本较旧,建议升级到Estimote SDK最新版本,新版本通常修复了扫描兼容性问题,适配更完善。

6. 区分两种监听逻辑的差异

代码中同时使用了setRangingListener和setConfigurableDevicesListener:

  • ranging返回所有扫描到的Beacon;
  • configurableDevices仅返回与云端绑定的可配置Beacon。
    单独打印configurableDevices的日志,确认云端绑定的Beacon是否被正常识别。

内容的提问来源于stack exchange,提问作者Priyanka patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:15:03