我是新的Andriod和Beacons,我试图实现发射器(发布者使用三星S7安卓手机作为信标(和接收器(听众(使用三星s7的另一个PhonE。为此,我正在尝试使用 Altbeacon 库 2-10。
首先,我的问题是是否可以在没有真正的信标的情况下进行传输.我不想模拟。我想使用一部手机作为信标,另一部手机作为接收器.
如果是这样,我尝试实现Transmitter的代码,我只能看到一次AdvertiseCallback调用,并且在应用程序的生命周期中只能进入onStartSuccess一次。这是正确的行为吗?还是我需要编写和安排以保持回拨?
请指教我。[下面的代码片段]
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);
信标发射器将在兼容设备上发送真正的蓝牙LE广告,该广告与专用硬件发射器的输出无法区分. 它创造了一个真正的灯塔。
对于您更改发送器状态的每个回调实例,应发出一次回调。 换句话说,如果您使用相同的回调调用 start 两次,则可能不会收到第二个回调。 您需要显示您在上下文中调用startAdvertisement
的位置。 如果要保证回调,请尝试在调用之前停止传输以再次启动。
无论如何, 测试它是否正常工作的最佳方法是使用第二台设备扫描广告并验证我们检测到的信标. 有关更多信息,请参阅此处:http://altbeacon.github.io/android-beacon-library/beacon-transmitter.html