- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
到目前为止,每个人在 iOS 10.0.2 上使用 iBeacons 的情况如何?希望比我好! :-)
更新:用于测试的硬件是两部 iPhone。 iPhone 5S(A1533) 和 iPhone 7(A1778)
以下代码的 swift 2.x 版本可以在 iPhone 上使用,以在 iOS 9.x 版本上宣传一个简单的 iBeacon;今天,同样的代码——为 swift 3 更新并在 iOS 10.0.2 上运行——似乎根本没有做广告。
我已将代码缩减为一个非常简单的帮助器类和一个我认为应该足以说明问题的 View Controller 。请注意, Storyboard只有一个按钮连接到开始/停止 iBeacon 广告。
我已经在装有 iOS 10.0.2 的 iPhone 5 和 iPhone 7 上运行了该应用程序。为了进行测试,我创建了一个自定义扫描器(嗅探特定的邻近 UUID),当它不起作用时,我尝试了更通用的 iBeacon 检测应用程序,例如 Estimote 和 LightBlue。
唉——什么都看不到 iBeacon。
想法? Apple 的开发者论坛提到了 10.x 中 iBeacons 报告的问题,但据我所知没有一个这么简单。
非常感谢...
- - - iBeaconConfiguration.swift - - - - - -
import Foundation
class iBeaconConfiguration
{
static let uuid = UUID(uuidString: "F34A1A1F-500F-48FB-AFAA-9584D641D7B1")!
private init() {}
}
- - - ViewController.swift - - - - - -
import UIKit
import CoreLocation
import CoreBluetooth
class ViewController: UIViewController, CBPeripheralManagerDelegate
{
@IBOutlet weak var btnAction: UIButton!
let UUID: UUID = iBeaconConfiguration.uuid
var beaconRegion: CLBeaconRegion!
var dataDictionary = NSDictionary()
var bluetoothPeripheralManager: CBPeripheralManager!
var isBroadcasting = false
override func viewDidLoad() {
super.viewDidLoad()
bluetoothPeripheralManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
}
@IBAction func switchBroadcastingState(_ sender: AnyObject)
{
if !isBroadcasting {
if bluetoothPeripheralManager.state == CBManagerState.poweredOn {
let major: CLBeaconMajorValue = 123
let minor: CLBeaconMinorValue = 456
beaconRegion = CLBeaconRegion(proximityUUID: UUID, major: major, minor: minor, identifier: "com.rdz.bcast")
dataDictionary = beaconRegion.peripheralData(withMeasuredPower: nil)
bluetoothPeripheralManager.startAdvertising(dataDictionary as? [String : Any])
btnAction.setTitle("Stop", for: UIControlState.normal)
isBroadcasting = true
}
}
else {
bluetoothPeripheralManager.stopAdvertising()
btnAction.setTitle("Start", for: UIControlState.normal)
isBroadcasting = false
}
}
func peripheralManagerDidStartAdvertising(_ peripheral: CBPeripheralManager, error: Error?) {
print ("peripheralManagerDidStartAdvertising()")
if error != nil
{
print(error)
}
}
func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveRead request: CBATTRequest) {
print ("peripheralManager(...didReceiveRead)")
}
func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {
var statusMessage = ""
switch peripheral.state {
case CBManagerState.poweredOn:
statusMessage = "Bluetooth Status: Turned On"
case CBManagerState.poweredOff:
if isBroadcasting {
switchBroadcastingState(self)
}
statusMessage = "Bluetooth Status: Turned Off"
case CBManagerState.resetting:
statusMessage = "Bluetooth Status: Resetting"
case CBManagerState.unauthorized:
statusMessage = "Bluetooth Status: Not Authorized"
case CBManagerState.unsupported:
statusMessage = "Bluetooth Status: Not Supported"
default:
statusMessage = "Bluetooth Status: Unknown"
}
print("Bluetooth Status: \(statusMessage)")
}
}
- - - END - - - - -
(对任何代码格式错误表示歉意。)
最佳答案
很多人报告 iOS 10 上的蓝牙有问题,但问题并不普遍。
在第 6 代 iPod Touch 型号上使用 10.0.2 (14A456) 进行测试mkh22ll/a,我可以使用 Locate app for iOS 成功扫描信标并传输 iBeacon。这是用 Objective C 编写的,但使用与您展示的相同的 API。您可以在有问题的设备上尝试使用相同的应用,看看是否仍有问题。
在同一台设备上测试另一个用 Swift 3 编写的应用程序(该应用程序同时传输和接收 iBeacon 数据包),我已验证它成功接收并发送了 iBeacon 数据包。
最重要的是,iOS 10 上的 iBeacon 传输和检测在某些设备上运行良好。
我怀疑 iOS 10 的蓝牙问题只发生在某些具有不同蓝牙硬件芯片组的 iPhone 硬件型号(并且可能只发生在这些型号的某些特定设备上)。
一些可能有助于解决问题的事情:
请使用您的硬件设备更新问题。
关于ios - iBeacons 在 iOS 10.0.2 中损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051552/
我知道 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 来触发对我的设备的通知,我应该允许哪些权限? 上次,我允许“充当蓝牙乐配件”,应用商店拒绝了我
我是一名优秀的程序员,十分优秀!