【问题标题】:Android AltBeacon Unable To Detect PiBeacon DeviceAndroid AltBeacon 无法检测到 PiBeacon 设备
【发布时间】:2016-03-08 11:53:08
【问题描述】:

我正在使用 PiBeacon 作为信标设备开发 Android 信标应用程序。
我已将 Respberry Pi 设置为 adfruit website 上给出的信标设备。
我可以看到 PiBeacon 正在使用 Play 商店中提供的其他 BLE 扫描仪应用程序进行传输。
我已经下载了 Altbeacon 并根据Altbeacon Sample 上的给定指南配置了我的 Android Studio 项目,但该应用程序没有显示 ble 设备。谁能帮助我我做错了什么? 以下是我用于扫描 PiBeacon 的代码。

public class MonitoringActivity extends Activity implements BeaconConsumer {
    protected static final String TAG = "MonitoringActivity";
    private BeaconManager beaconManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ranging);
        beaconManager = BeaconManager.getInstanceForApplication(this);
        // To detect proprietary beacons, you must add a line like below corresponding to your beacon
        // type.  Do a web search for "setBeaconLayout" to get the proper expression.
        // beaconManager.getBeaconParsers().add(new BeaconParser().
        //        setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
        beaconManager.bind(this);
    }

    @Override 
    protected void onDestroy() {
        super.onDestroy();
        beaconManager.unbind(this);
    }

    @Override
    public void onBeaconServiceConnect() {
        beaconManager.setMonitorNotifier(new MonitorNotifier() {
            @Override
            public void didEnterRegion(Region region) {
                Log.i(TAG, "I just saw an beacon for the first time!");        
            }

            @Override
            public void didExitRegion(Region region) {
                Log.i(TAG, "I no longer see an beacon");
            }

            @Override
            public void didDetermineStateForRegion(int state, Region region) {
                Log.i(TAG, "I have just switched from seeing/not seeing beacons: "+state);        
            }
        });

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

【问题讨论】:

    标签: android raspberry-pi ibeacon-android altbeacon android-ibeacon


    【解决方案1】:

    您引用的 PiBeacon 发送和 iBeacon 传输,但默认情况下,Android Beacon Library 仅检测开源 AltBeacon 传输。

    检测其他信标类型很容易,但您需要为您感兴趣的信标类型添加一个新的BeaconParser。说明就在您发布的代码的 cmets 中:

    要检测专有信标,您必须添加如下所示的与您的信标类型相对应的行。在网络上搜索“setBeaconLayout”以获得正确的表达式。

    抱歉,需要这样做 - 不幸的是,知识产权限制意味着我们不能将表达式包含在库中或将其发布在这样的公共论坛上。幸运的是,使用 Google 搜索很容易找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多