Articles of ibeacon

以编程方式,如何识别信标是否属于Eddystone或iBeacon?

我创建了一个Android应用程序,使用蓝牙LE扫描程序扫描BLE。 现在我需要我的应用程序来识别信标是否属于iBeacon或Eddystone。 到目前为止,我通过解析AD帧成功地确定了ibeacon的UUID,MajorId,MinorId。

如何在不使用任何库的情况下检测android中的IBeacon

我是Ibeacon的新手,我想知道我们可以在不使用任何SDKLibrary或库的情况下检测到android中的Ibeacon,任何人都可以提供示例示例。 我知道像Radius Networks这样的图书馆。 但我不想使用任何图书馆

Android BLE中未调用onBatchScanResults

我现在在android开发中使用新的BLE api。 基本思路是使用蓝牙扫描结果来扩充Recyclerview(列表); 我按照谷歌开发者的BLE指南 现在我有两个问题: onBatchScanResults监听器永远不会被触发,但是onScanResult运行良好,是因为扫描仪只能感知附近的1个传感器吗? 与其他应用程序相比,我的BLE扫描仪要慢得多。 以下是两个核心function的代码片段。 private void scanBLE(boolean enable) { final BluetoothLeScanner mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); if (enable) { mScanning = true; mBluetoothLeScanner.startScan(mScanCallback); } else { if (mScanning) { mScanning = false; mBluetoothLeScanner.stopScan(mScanCallback); } } Log.i(TAG, “now the scanning state is” + mScanning); } // Device scan callback. private ScanCallback mScanCallback = new […]

Cordova无法安装’cordova-plugin-whitelist’:错误:ENOENT:没有这样的文件或目录AndroidManifest.xml

我在OSx 10.13.2上安装了Cordova 8.0.0,其中包含Node v8.5.0和npm v5.5.1。 添加插件cordova-plugin-ibeacon ,当我做一个cordova platform add android ,我收到以下错误: 无法安装’cordova-plugin-whitelist’:错误:ENOENT:没有这样的文件或目录AndroidManifest.xml 截图:

使用iBeacons在Android中进行三角测量

我们希望使用iBeacons实现某种室内位置确定。 本文看起来非常有趣 ,其中作者使用Eigen C ++库和Levenberg Marquardt算法实现了非线性最小二乘三角剖分。 由于Eigen是用C ++编写的,我试图使用JNI和Android NDK来使用它,但是它会引发很多错误,我不知道如何解决,而且我在网上找不到任何东西。 我也尝试使用Jeigen,但它没有我们需要的所有function。 所以,我的问题是: 有人曾在Android中使用信标实现某种Trilateration吗? 您认为使用Eigen + JNI + NDK是一个很好的解决方案吗? 如果是,您是否曾使用该组合实施Levenberg Marquardt? 有没有比Levenberg Marquardt算法更好的选项来计算Android应用程序中的三边测量?

如何使用Altbeacon android库检测多个信标?

我在我的Android设备上使用AltBeacon示例应用程序 – altbeacon.org提供的示例应用程序位于: https : //github.com/AltBeacon/android-beacon-library-reference 但是,启动时应用程序只检测并显示一个信标。 我的Android设备附近有大约5个信标。 我如何检测所有信标? 在RangingActivity.java中,我注意到当信标出现时正在调用此方法: public void onBeaconServiceConnect() { beaconManager.setRangeNotifier(new RangeNotifier() { @Override public void didRangeBeaconsInRegion(Collection beacons, Region region) { if (beacons.size() > 0) { EditText editText = (EditText) RangingActivity.this.findViewById(R.id.rangingText); Beacon firstBeacon = beacons.iterator().next(); logToDisplay(“The first beacon ” + firstBeacon.toString() + ” is about ” + firstBeacon.getDistance() + ” meters […]

Android AltBeacon后台服务测距

我正在使用AltBeacon库处理蓝牙应用程序。 似乎每个应用程序只允许使用BeaconManager实例。 我面临的问题是:我想要一个持续运行的后台服务,不断进行蓝牙测距并发送通知。 如果我打开我的应用程序(将其带到前台)我就是暂停范围的服务。 然后,前景活动将进行测距并在屏幕上显示内容。 问题是,活动和服务中的信标管理器(来自BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this); )是同一个实例。 所以当活动关闭时, beaconManager.unbind(this); 被调用,服务中的范围通知程序不再触发。 是否有可能获得两个独立的信标管理器实例? 如果没有,我如何在连续运行的服务和活动中进行测距? RangingActivity @Override protected void onCreate(Bundle savedInstanceState) { … regionEstimote = new Region(“estimote”, null, null, null); beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(“m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24”)); beaconManager.bind(this); } @Override protected void onDestroy() { super.onDestroy(); notificationManager.cancel(NOTIFICATION_ID); //beaconManager.unbind(this); } @Override public void onBeaconServiceConnect() { beaconManager.setRangeNotifier(new RangeNotifier() { …. }); try { […]

如何在Android中使用Estimote SDK获取信标的唯一ID

我正在开发一个我正在使用Beacons的应用程序。 我已经完成了相关的Estimote SDK。 现在问题是我需要知道特定灯塔的唯一ID。 假设我有3个信标,并且所有信标都存在于设备的范围内。 现在我想根据信标的唯一ID执行不同的function。 为此,我需要知道每个灯塔的唯一ID。 目前我正在为Beacon提供UUID,只是检查它是否在设备区域内。 我的代码如下: – private static final String ESTIMOTE_PROXIMITY_UUID = “XYZ”; private static final Region ALL_ESTIMOTE_BEACONS = new Region(“regionId”,ESTIMOTE_PROXIMITY_UUID, null, null); beaconManager.setMonitoringListener(new MonitoringListener() { @Override public void onExitedRegion(Region region) { //Region Exited } @Override public void onEnteredRegion(Region arg0, List arg1) { // TODO Auto-generated method stub //Do something … […]

如何使用RSSI改善蓝牙距离测量?

对于我的项目,我需要估计智能手机和蓝牙模块之间的距离。 估算不必非常精确。 我只需要确定距离,误差幅度约为50cm 。 我测试了两个蓝牙模块的RSSI,距离为10厘米。 我为每一步测量了RSSI 5次,得到了5次测量的平均值。 平均值如下图所示: 红色和蓝色线条类似于两个蓝牙模块。 您可以看到结果不是很线性。 其中一个原因是干扰,所以我寻找解决干扰问题的方法。 我发现的两种方式是: 信噪比(SNR): 了解ibeacon间隔 iBeacon信号强度( rssi )与校准发射机功率( txPower )之比。 txPower是距离1 meter处txPower的已知测量信号强度: http : //www.princeton.edu/~achaney/tmve/wiki100k/docs/Signal-to-noise_ratio.html 但是,我真的不明白如何使用上述技术来获得更高的准确性。 对于SNR我需要噪声值,我如何获得噪声值? 对于比率rssi / txPower ,我可以通过简单地测量距模块1 meter处的rssi来获得txPower 。 所以我知道所有需要的价值观。 但我不知道从这里做什么。 如何使用这些值来获得更准确的距离估计? 我可以使用其他任何技术来提高准确性吗?

iBeacons – 公司(Estimote,Gimbal等)SDKs与Android / iOS库

我一直在用他们的Android SDK玩Estimote iBeacons。 但是,我仍然对为什么有这么多SDK可用而感到困惑。 iBeacons只是标准的蓝牙设备,具有蓝牙低功耗(BLE)蓝牙4.0规范的一部分。 只要您拥有“Bluetooth Smart Ready”设备(iPhone 4S +和Android 4.3+),您就能够检测到所有iBeacons,无论信标制造商如何。 Android( 蓝牙低功耗连接 )和iPhone( iOS开发者库 )都提供系统级库来开发应用程序以使用iBeacons。 那么为什么有这么多的SDK用于连接到iBeacons(Gimbal,Estimote,Radius Networks, 开源Android API )。 所以我有几个问题: 为什么有这么多SDK可用? 制造商可以锁定他们的信标只能通过他们的SDK访问吗? Android 4.3蓝牙连接库可以轮询并查找任何iBeacon吗? 使用非Android SDK有什么好处? 在我看来,只有android库可以实现地理围栏和接近检测,但通知和持续的背景轮询是不可能的。