- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想扫描我周围的任何一种信标。基本上,如果我理解正确的话,您需要在扫描之前知道他们的 ID?你将如何扫描你周围的任何信标并提取他们的 UUID/Factory Id/等等?
这是我当前的代码:
public class TestActivity extends Activity implements BeaconConsumer {
private BeaconManager beaconManager;
public static final String TAG = "TestActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startBeaconScan();
}
public void startBeaconScan() {
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setDebug(true);
beaconManager.bind(this);
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.getBeaconParsers().add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=00,p:3-3:-41,i:4-13,i:14-19"));
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("x,s:0-1=feaa,m:2-2=20,d:3-3,d:4-5,d:6-7,d:8-11,d:12-15"));
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-20v"));
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
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.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.setMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(final Region region) {
Log.d(TAG, "ENTERED REGION: "+region);
}
@Override
public void didExitRegion(Region region) {}
@Override
public void didDetermineStateForRegion(int i, Region region) {}
});
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> collection, Region region) {
Log.d(TAG, "BEACONS: "+collection.size());
}
});
}
@Override
public void onBeaconServiceConnect() {
try {
beaconManager.startMonitoringBeaconsInRegion(new Region("myRegion", null, null, null));
} catch (RemoteException e) {
e.printStackTrace();
}
}
我在输出中得到了这些消息,但没有别的:
beacon detected : id1: f7826da5-4fa1-4e48-8024-bc5b70e0891a id2: 49089 id3: 34388
所以问题是,我如何在事先不知道 ID 的情况下检测到这些信标?
最佳答案
两点:
创建一个包含所有空标识符的 Region
定义本质上是一个将匹配所有信标标识符的通配符,因此您不需要预先知道它们。显示的代码已经有这个。
要获取检测到的信标列表,您需要开始测距。显示的代码有一个狂暴的回调,但它没有开始测距。
在这一行之后:
beaconManager.startRangingBeaconsInRegion(new Region("myRegion", null, null, null));
添加这个:
beaconManager.startMonitoringBeaconsInRegion(new Region("myRegion", null, null, null));
关于Android AltBeacon 测距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131806/
我想扫描我周围的任何一种信标。基本上,如果我理解正确的话,您需要在扫描之前知道他们的 ID?你将如何扫描你周围的任何信标并提取他们的 UUID/Factory Id/等等? 这是我当前的代码: pub
我发现 iBeacon 测距在 iOS 8.X 和 iOS 9 beta 上的工作方式存在巨大差异。 在 iOS 8.X 上,我可以在后台测距(当应用程序在后台且屏幕关闭时测距继续工作),但在 iOS
重新启动手机后,我的应用程序停止获取 CoreLocation 委托(delegate)回调,这是预期的行为吗?我想我记得读过你仍然可以获得回调。如果是这样,文档中是否有任何地方说明它是否可能? 最佳
我使用 IBeacon 构建了一个简单的 ios 应用程序,当该应用程序在前台或后台运行时它工作正常,但在重新启动我的手机后,我的应用程序停止获取 CoreLocation 委托(delegate)回
我是一名优秀的程序员,十分优秀!