我正在使用AltBeacon库开发蓝牙应用程序。似乎每个应用程序只允许BeaconManager实例。我面临的问题是:我想要一个持续运行的后台服务,不断进行蓝牙测距并发送通知。如果我打开我的应用程序(将其置于前台),我就是暂停测距的服务。然后前台Activity将进行测距并在屏幕上显示内容。问题是Activity和服务中的信标管理器(来自BeaconManagerbeaconManager=BeaconManager.getInstanceForApplication(this);)是同一个实例。因此,当Activity关闭时,将调用beaconManager.unbind(this)
我正在开发一个使用信标的应用程序。我已经完成了相关的EstimoteSDK。现在问题是我需要知道特定Beacon的唯一ID。假设我有3个信标,并且都在设备范围内。现在我想根据信标的唯一ID执行不同的功能。为此,我需要知道每个Beacon的唯一ID。目前我正在为Beacon提供UUID,只是检查它是否在设备区域。我的代码如下:-privatestaticfinalStringESTIMOTE_PROXIMITY_UUID="XYZ";privatestaticfinalRegionALL_ESTIMOTE_BEACONS=newRegion("regionId",ESTIMOTE_PRO
对于我的项目,我需要估计智能手机和蓝牙模块之间的距离。估计不必非常精确。我只需要确定误差范围为50cm的距离。.我确实以10厘米的距离步长测试了两个蓝牙模块的RSSI。我为每个步骤测量了5次RSSI,并获得了5次测量的平均值。平均值如下图所示:红线和蓝线类似于两个蓝牙模块。您可以看到结果不是很线性。造成这种情况的原因之一是干扰,所以我寻找解决干扰问题的方法。我发现的两种方法是:信噪比(SNR):UnderstandingibeacondistancingiBeacon信号强度(rssi)与校准后的发射机功率(txPower)之比。txPower是rssi中已知的测量信号强度在1mete
我必须承认我是BLE4.0的新手,我想了解什么是BLE外围设备的唯一标识符。通常,对于所有WiFi通信,MAC都被视为设备的唯一ID。我有以下问题:UUID有什么用?不同的BLE外围设备应该有不同的UUID吗?什么是BLE外围设备的唯一ID,可由其他中央BLE设备识别?例如,Android上的位置查找应用如何检测外围BLE设备?能否仅通过扫描(即无连接)获得BLE外围设备的唯一ID?连接到BLE外围设备是否需要任何手动干预?我读到不需要手动选择读取外设传输的数据希望你们中的一些人能提供帮助。 最佳答案 BLE设备与普通蓝牙一样具有唯
我正在使用iBeacons并使用AltBeacon库。beaconManager.getBeaconParsers().add(newBeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));我希望我的Android应用程序能够在信标进入和退出可见性时检测并生成一个事件。这对于使用方法库的单个信标来说工作得很好。publicvoid**didEnterRegion**(Regionregion)和publicvoid**didExitRegion**(Regionregion)我的问题是多个
我正在尝试使用以下BeaconLayout检测KontaktBeacon:setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));但我似乎没有做对。广告包结构是这样的:提前致谢。 最佳答案 感谢@davidgyoung的评论,我终于可以使用以下代码检测到我的Kontakt信标:publicclassMainActivityextendsActivityimplementsBeaconConsumer{protectedstaticfinalStringTAG="R
我正在使用Cordova/PhonegapiBeaconplugin与ionicframework在我的Cordova项目中。我正在尝试使用cordovalocalnotificationplugin在android和ios上发送本地通知进入监控区域时,当应用程序被杀死时。这是我的代码:document.addEventListener("deviceready",onDeviceReady,false);functiondidDetermineStateForRegion(pluginResult){}functiondidStartMonitoringForRegion(plugi
1.判断用户是否打开蓝牙:由于iBeacon是基于蓝牙传输数据的,所以第一步要判断是否打开蓝牙,如果没有打开则提示用户去打开蓝牙,然后在下拉刷新时重新判断,确认用户打开之后再搜索iBeacon设备wx.openBluetoothAdapter({success:()=>{//搜索iBeacon设备},fail:()=>{wx.showModal({title:'提醒',content:'请先打开您的手机蓝牙,打开后下拉刷新',})}})2.通过wx.startBeaconDiscovery接口,搜索iBeacon设备,如需搜索多个设备,需要将UUID组成一个数组3.搜索设备成功后,设置iBea
当我的应用程序进入我定义的信标区域时,我试图唤醒它(重新启动它),但我就是无法让它工作。这是我正在使用的步骤和代码。将“位置更新”后台模式设置为"is"。监控我的CLBeaconRegionNSUUID*uuid=[[NSUUIDalloc]initWithUUIDString:@"EBEFD083-70A2-47C8-9837-E7B5634DF524"];beaconRegion=[[CLBeaconRegionalloc]initWithProximityUUID:uuididentifier:@"daRegion"];beaconRegion.notifyEntryStateO
我从几周开始就在使用ibeacons,当iphone到达信标区域时(接近时),我试图发布一些本地通知。当应用程序在后台锁定并显示时它工作正常,但是当我的显示器变黑时,didRangeBeacons方法停止被调用。我知道通过使用region.notifyEntryStateOnDisplay=true;我们可以在显示屏打开时收到通知。有什么方法可以在应用程序处于后台且锁定并显示关闭时实现发布通知。请帮帮我。 最佳答案 完全有可能在后台对信标进行测距。您可以通过将其与您当前的位置管理器一起设置或创建一个平行的(我认为这没有区别)来绕过限