jos*_*405 3 bluetooth ios bluetooth-lowenergy ibeacon swift
我正在开发一个信标检测应用程序,目前非常适合kontakt品牌信标.
客户给我发了一些我从未见过的新信标,我用谷歌搜索过,但我找不到他们的品牌.
以下信息与他们给我的这个灯塔有关:
uuid: fda50693-a4e2-4fb1-afcf-c6eb07647825
pass: 000000
name: ion_beacon00021
major: 16789
minor: 24532
Run Code Online (Sandbox Code Playgroud)
我已经将我的代码转换为监视两个uuid而不使其工作
for (index, beaconID) in beaconsIds.enumerated() {
let beaconUUID = UUID(uuidString: beaconID)!
let identifier = "BLERegionBeacon \(index)"
let beaconRegion = CLBeaconRegion(proximityUUID: beaconUUID, identifier: identifier)
self.locationManager?.startMonitoring(for: beaconRegion)
self.locationManager?.startRangingBeacons(in: beaconRegion)
}
func configureLocationManager() {
self.locationManager = CLLocationManager()
self.locationManager!.delegate = self
self.locationManager!.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager!.distanceFilter = kCLDistanceFilterNone;
self.locationManager!.activityType = CLActivityType.automotiveNavigation;
for region in self.locationManager!.monitoredRegions {
self.locationManager?.stopMonitoring(for: region)
}
if CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedAlways {
self.locationManager?.requestAlwaysAuthorization()
}
self.locationManager!.startUpdatingLocation()
}
Run Code Online (Sandbox Code Playgroud)
如果没有找到如何让这个新iBeacon显示工作,我已经使出了第三方应用程序(如MyBeacon,Detector,Beacon Demonstrator,Locate),以获得验证,如果我有这个灯塔的信息是正确的,但在任何应用程序,我已经能够使它检测此iBeacon显示.
我买了一个新电池,以确保它不是那么简单,但都没有.:'(
我有想法使用任何检测蓝牙设备的应用程序,我发现BLE Scanner.有了这个应用程序,我很幸运,并且可以意识到至少我对信标的名称是正确的,但没有找到任何相关的major or minor or pass.我也认为那里看到的长身份可能是正确的,而我不是......但是我放弃了它,因为当我连接品牌时kontakt也给了我一个不同的uuid.
ISCONNECTABLE 在YES和NO之间跳转.
当我BLE Scanner用来检测信标时,Kontakt显示我称之为的附加信息SERVICEDATA,ISCONNECTABLE仍然是YES.
- 还有什么需要做的来检测这些信标吗?
- 任何人都知道可能发生了什么?
非常感谢你
编辑
在davidgyoung的帮助下,我可以意识到Locate应用程序是否有效,但仅限于其Android版本.事实上,它首先正确地返回了我从该信标中获得的信息.
我发现这些信标可以使用名为BeaconFlyer的应用程序进行配置,在那里我意识到了发送给我的密码的原因.我能够改变,uuid虽然奇怪的是我只是把数字和没有字母.我按照8-4-4-4-12的相同模式将其改为32个零.即使更改了uuid,我仍然在IOS中没有得到任何结果但是在android上工作.
某些品牌可能需要经过认证才能被iOS设备检测到并且Android没有这些限制.
编辑2
考虑到所有这些细节,似乎问题是IOS而不是android,所以我想到,如果我创建一个简单的android项目来测试信标的功能,我应该能够检测到它.
测试是通过注册这个UUID f7826da6-4fa2-4e98-8024-bc5b71e0893e来完成的,这个UUID 总是对我有效,并且我在没有任何问题的情况下检测到信标标记kontakt.
令我惊讶的是,即使没有注册我对这个品牌的UUID,我也没有问题地检测到它.考虑到只注册1个UUID作为标记,这是非常奇怪的kontakt
如果您使用相同的代码检测另一个信标,那么最简单的解释是您给出的ProxmityUUID是错误的.
您将无法从iOS上的BLE扫描仪确定正确的ProximityUUID,因为iOS阻止访问iBeacon广告,除非您事先了解ProximityUUID.如果您可以使用Android设备,则可以使用"定位"应用查看任何信标,无论其标识符如何.https://play.google.com/store/apps/details?id=com.radiusnetworks.locate&hl=en 您可以使用此功能查看实际发送的内容.如果您可以访问Mac,也有适用于MacOS的类似应用程序.
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |