- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直致力于使用 swift 3 和 Xcode 8.2.1 在 iOS 10 上检测 iBeacons。
我一直在关注 this教程,到目前为止,我已经能够在前台检测到信标。但是,我需要的是在后台以及应用程序关闭时检测到信标。
我已经设置了 key NSLocationAlwaysUsageDescription
在 info.plist
并添加了 Location updates
在应用程序中 Background Modes
.
我还请求 requestAlwaysAuthorization
来自用户。
一切正常,直到我将以下语句添加到代码中:locationManager.startMonitoring(for: beaconRegion)
在我添加上述语句并运行代码后,我的应用程序检测到前台的信标并向我打印一条消息。但是,一旦我最小化该应用程序并重新打开它,该应用程序似乎就找不到信标了。如果我注释掉该行然后重新运行我的程序,该应用程序会检测到前景中的信标以及当我最小化并再次重新打开该应用程序时。我不明白我做错了什么。
这是我的 ViewController
代码:
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.allowsBackgroundLocationUpdates = true
locationManager.requestAlwaysAuthorization()
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedAlways {
if CLLocationManager.isMonitoringAvailable(for: CLBeaconRegion.self) {
if CLLocationManager.isRangingAvailable() {
startScanning()
}
}
}
}
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
if beacons.count > 0 {
NSLog("Found beacon")
} else {
NSLog("Beacon not found")
}
}
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
let beaconRegion = region as! CLBeaconRegion
print("Did enter region: " + (beaconRegion.major?.stringValue)!)
}
func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
let beaconRegion = region as! CLBeaconRegion
print("Did exit region: " + (beaconRegion.major?.stringValue)!)
}
func startScanning() {
let uuid = UUID(uuidString: "2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")!
let beaconRegion = CLBeaconRegion(proximityUUID: uuid, major: CLBeaconMajorValue(0), minor: CLBeaconMinorValue(1), identifier: "MyBeacon")
beaconRegion.notifyEntryStateOnDisplay = true
beaconRegion.notifyOnEntry = true
beaconRegion.notifyOnExit = true
// locationManager.startMonitoring(for: beaconRegion)
locationManager.startRangingBeacons(in: beaconRegion)
}
}
这是我的日志的样子:
Found beacon
Found beacon
Found beacon
// App minimised and reopened here
Found beacon
Found beacon
Found beacon
Found beacon
Found beacon
Found beacon
Beacon not found
Beacon not found
Beacon not found
Beacon not found
Beacon not found
Beacon not found
最佳答案
尝试添加监控委托(delegate)回调 didEnter(region: region)
和 didExit(region: region)
。不知道为什么它会改变事情,有点不寻常的是代码开始监视但没有它们。
编辑:看到更新后的代码后,我怀疑问题可能出在测距开始的方式上。不要在 didChangeAuthorization
回调中启动它,只需在 viewDidLoad
中启动它。如果没有授权,代码不会崩溃。它只是在扫描之前不会真正扫描。
关于ios - 设置监控后无法在 iOS 10 中检测到 iBeacon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42519201/
我知道 iBeacons 可以将人们发送到应用程序,据我所知,iOS 设备和 Android 设备(4.3+)都可以运行检测它们的应用程序。我想知道是否不是信标将您发送到商店的特定应用程序,而是它是否
Google 的 Proximity Beacon API 文档到处都以 Eddystone 为例: https://developers.google.com/beacons/proximity/r
我们正在与 iBeaons 在跨国多个地点讨论大规模部署方案。提出的问题是 iBeacons 用来宣传其存在的 ID 是否是唯一的?因为我们的客户想要真正确定应用程序只响应特定的 iBeacons,而
我找到了这个关于使用 iBeacon 开发应用程序的好教程: http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 但是对于这个实现,正
iOS 设备是否可以作为 iBeacon 进行广播并同时监视 iBeacon?我目前正在使用自定义树莓派解决方案执行此操作,并想知道它是否可以转换到设备。 最佳答案 是的,如果应用程序在前台,您可以执
我在网上看到声称新发布的 iOS 7.1 支持 iBeacon。 具体: 系统应该仍会通知您的应用程序didEnterRegion/didExitRegion 事件,即使用户明确杀死你的应用程序。 d
我想知道 iOS 设备是否可以在监听其他 iBeacon 时充当 iBeacon。根据我的阅读,答案似乎应该是“否”,但我非常感谢您给出明确的答案。我会自己测试一下,但我还没有购买额外的 iOS 设备
我正在为 iOS 编写一个应用程序,该应用程序要求该应用程序同时通告 iOS iBeacon 以及通告外围服务。有必要宣传该服务,而不是简单地在外设上发现该服务,因为用例需要中央(用 BLE 术语)在
我正在开发一个 iOS 应用程序,可以检测我周围的 iBeacon 设备。据我了解,我们需要知道特定的 UUID 才能扫描它们。 这里是前任:Search for all iBeacons and n
我已成功修改 reference implementation app Android Beacon Library的使用以下 beacon layout ,以便它检测到我手边的 iBeacon 设备
我正在尝试将 ibeacon 功能集成到 Ionic 2 应用程序中。 我正在使用 https://ionicframework.com/docs/native/ibeacon/插入。 按照文档中提到
我正在尝试编写一个 Cordova 插件,它与 Android 的 Radius Networks iBeacon 库交互。现在,我知道该库是为与 Activity/Service 一起使用而设计的,
我已经检查了以下信标的规范: Eddystone Protocol Specification AltBeacon Protocol Specification v1.0 ibeacon Payloa
我在控制台中有这条消息,但我已经检查了 locationManager.monitoredRegions 和 locationManager.rangedRegions 我的应用程序没有监控到很多区域
我将使用 iOS 7 和蓝牙 4.0 启动 iBeacon 的项目代码。 http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 准备好上
这个问题已经有答案了: iBeacon / Bluetooth Low Energy (BLE devices) - maximum number of beacons (5 个回答) 已关闭 8 年
我目前有一个应用程序设置可以使用 Azure 通知中心接收远程通知。现在,我想扫描 iBeacons,看看附近是否有特定的 iBeacons,如果是,则不应向用户显示通知。但是,如果看不到信标,用户应
我正在尝试在没有用于测试的实际信标的开发情况下实现 iBeacon。我正在使用“Beacon Bits”,它是在 iPad 上运行的模拟器。我已经尝试过其他信标模拟器来消除模拟器可能是问题的可能性。所
目前我有 3 个发射器和 1 个接收器(4 个设备是 iPhone)设置允许我进行三边测量。 但是,我发现信号波动很大(即使 4 个设备稳定地放在 table 上)。有什么策略可以稳定信号吗? 我应该
我正在使用 tricekit,在他们的示例 sdk 中,我看到了这些背景模式。 我只需要 ibeacon 来触发对我的设备的通知,我应该允许哪些权限? 上次,我允许“充当蓝牙乐配件”,应用商店拒绝了我
我是一名优秀的程序员,十分优秀!