Altbeacon Transmitter onStartSuccess只调用一次就是正确的行为?

时间:2017-05-29 08:41:30

标签: android altbeacon

我是Andriod和Beacons的新手,我试图使用andriod三星s7的另一个phonE实现Transmitter(发布者使用三星S7安卓手机作为信标)和Receiver(听众)。为此,我正在尝试使用Altbeacon库2-10。

首先,我的问题是没有真正的信标就能传输。我不想模拟。我想用一个手机作为信标,另一个手机用作接收器。

如果是这样,我尝试实现Transmitter的代码,我只能看到一次AdvertiseCallback调用并进入onStartSuccess ONLY一次在应用程序的生命周期中。这是正确的行为吗?或者我是否需要编写并安排调用回调?

请指教。 [以下代码的片段]

 callback =  new AdvertiseCallback() {
         @Override
         public void onStartSuccess(AdvertiseSettings settingsInEffect) {
             super.onStartSuccess(settingsInEffect);
             Log.d(LOG_TAG, "Advertisement start succeeded .");
         }

         @Override
         public void onStartFailure(int errorCode) {
             super.onStartFailure(errorCode);
             Log.d(LOG_TAG, "Advertisement Failed ERROR "+Integer.toString(errorCode));
         }
     };

    beaconTransmitter.startAdvertising(beacon, callback);

1 个答案:

答案 0 :(得分:0)

BeaconTransmitter将在兼容设备上发出真正的BluetoothLE广告,这与专用硬件发送器的输出无法区分。它创造了一个真正的灯塔。

对于每个更改发送器状态的回调实例,应该发出一次回调。换句话说,如果使用相同的回调调用start两次,则可能无法获得第二次回调。您需要在上下文中显示您对startAdvertisement的调用。如果您想保证回调,请在呼叫再次开始之前尝试停止传输。

无论如何,测试它是否正常工作的最佳方法是使用第二个设备扫描广告并验证我们检测到的信标。有关详细信息,请参阅此处:http://altbeacon.github.io/android-beacon-library/beacon-transmitter.html