当前位置: 首页 > 知识库问答 >
问题:

iOS CLLocationManager未检测到Android Beacon库iBeacon信号从Android发送

钱志
2023-03-14
    null
    null
    null
  • 在两个平台上使用相同的UUID,当从iOS传输iBeacon信号时,使用CLLocationManager委托方法在另一个iOS设备上检测到该信号
    locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion)

使用相同的UUID从使用Android Beacon库的Android传输iBeacon信号,IOS上的上述CLLocationManager委托方法不会检测到该Beacon。

  • 为了增加检测的机会,我取消了iOS端对主值和次值的要求,以防止iOS因主值和次值不匹配而滤除信标信号的可能性。
  • 是的,我尝试添加主要值和次要值,但没有效果。
  • 我也尝试使用以下方法测距信标:
    func startRangingBeacons(satisfying constraint: CLBeaconIdentityConstraint)

在iOS上进行检测

    var locationManager: CLLocationManager!
    var localBeaconUUID = "578f4eba-a16e-11ea-bb37-0242ac130002"
    let beaconIdentifier = "MyBeacon"

    override func viewDidLoad() {
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.requestAlwaysAuthorization()
   }

    func startScanning() {
        let uuid = UUID(uuidString: localBeaconUUID)!
        let beaconRegion = CLBeaconRegion(uuid: uuid, identifier: beaconIdentifier)
        locationManager.startMonitoring(for: beaconRegion)
        locationManager.startRangingBeacons(in: beaconRegion)
    }

    func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
        print("Ranged beacons: \(beacons.count)")
    }

在Android上传输iBeacon

    private val uuid = "578f4eba-a16e-11ea-bb37-0242ac130002"

    fun transmitBeacon() {
        val beacon = Beacon.Builder()
                .setId1(uuid)
                .setId2("1")
                .setId3("1")
                .setManufacturer(0x004c)
                .setTxPower(-59)
                .setDataFields(listOf(0L))
                .build()
        val beaconParser = BeaconParser()
                .setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24")
        val beaconTransmitter = BeaconTransmitter(applicationContext, beaconParser)
        beaconTransmitter.startAdvertising(beacon)
    }

共有1个答案

陶成化
2023-03-14
val beaconParser = BeaconParser()
                .setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24")
val beaconParser = BeaconParser()
                .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")
 类似资料:
  • 对于iOS对希望扫描BLE信标\外围设备的应用程序所应用的限制,存在很多困惑。在阅读了几个博客和堆栈溢出的答案之后,我想看看我是否正确理解了所有问题。如果我有什么误解或遗漏,请纠正我。我只提到iOS 7及以上版本,重点是检测而不是连接(您可以使用iBeacon监控连接到CLBeacon吗 信标的选项是明确的-使用通用BLE外围设备或使用iBeacon格式播发的BLE外围设备(此外,非标准外围设备可

  • 我有显示iBeacon信息的文本视图(例如uuid、major、minor等)和一个用于启动/停止扫描的检测/停止按钮。当我在iBeacon关闭的情况下按下按钮开始扫描时,应用程序没有显示预期的内容。但是,当我在iBeacon打开时开始扫描,然后在扫描时关闭iBeacon时,应用程序仍会显示信息,就好像它仍在检测iBeacon一样。当应用程序在信标打开的情况下扫描BLE时,它会给出 D/Bluet

  • 使用https://altbeacon.github.io/android-beacon-library/samples.html中的代码试图检测IBeacon发射器,该发射器是iOS8,如下http://blog.passkit.com/configure-iphone-ibeacon-transmiter/,在哪一步出错了,我需要在区域中使用BeaconIdentifier作为mymonito

  • 因为它是开源的,我想坚持它,以后相应地个性化(更新)。 例如,我们需要使用以下代码设置信标布局: 编辑:我更改了代码的setBeaconLayout部分,正如答案中所建议的那样。但还是不起作用。

  • 我是一名Java新手,我想通过在minecraft上修改来进行训练。我在youtube上关注tutos(因为找不到新的tutos,所以是旧的tutos),安装了MCP,运行了一些命令(其中一些命令会让我出错),当我最终启动ta代码时,我注意到所有与forge库相关的方法和内容都是红色的。我不能用任何符号来解决这个问题。所以,请问有没有人有一个解决方案,我在网上搜索了很多次,但我发现它的旧芭蕾舞团不

  • 我一直试图让flutter检测Android SDK。 回报 PS I:\project\flutter\fluttertest\flutterproject>flutter doctor-v [√]flutter(Channel beta,v0.1.5,在Microsoft Windows上[Version 10.0.16299.248],locale en-美国) •flutter Versi