- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试从我的 iOS 设备连接到的蓝牙外围设备获取服务列表。 retrieveConnectedPeripherals 是这样做的方法吗?如果是这样,我需要什么 CBUUID 来检索具有免提服务的外围设备。
import CoreBluetooth
class TopVC: UIViewController, CBCentralManagerDelegate, CBPeripheralDelegate {
var centralManager: CBCentralManager!
var peripheral: CBPeripheral!
override func viewDidLoad() {
super.viewDidLoad()
centralManager = CBCentralManager(delegate: self, queue: nil)
}
// required protocol method
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == .poweredOn {
self.centralManager.retrieveConnectedPeripherals(withServices: [CBUUID])
} else {
print("bluetooth not available")
}
}
}
最佳答案
通常你可以从 func scanForPeripherals(withServices serviceUUIDs: [CBUUID]?, options: [String : Any]? = nil)
开始扫描可用的 BT 设备。然后,当发现新设备时,您将调用您的代表。
func retrieveConnectedPeripherals(withServices serviceUUIDs: [CBUUID]) -> [CBPeripheral]
立即为您提供当前连接的 BT 设备列表,它无法告诉您之前连接过哪些设备。通常您可以传递一个空数组,这将帮助您获取所有已连接的设备。
CBUUID
实例? /*!
* @method UUIDWithString:
*
* @discussion
* Creates a CBUUID with a 16-bit, 32-bit, or 128-bit UUID string representation.
* The expected format for 128-bit UUIDs is a string punctuated by hyphens, for example 68753A44-4D6F-1226-9C60-0050E4C00067.
*
*/
public /*not inherited*/ init(string theString: String)
让 uuid = CBUUID(string: "XXXXXXX")
通常,如果您检索具有空数组CBUUID
的已连接外设,您将检索到已连接外设的空列表。这是由安全原因引起的。所以你必须指定一些 CBUUID
来检索具有指定 CBService
的外围设备。
关于swift - 蓝牙 retrieveConnectedPeripherals swift 需要什么 CBUUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656538/
我想检查我的 iPhone 连接到了哪些蓝牙设备。为此,我使用 CBCentralManager.retrieveConnectedPeripherals()像这样: let connectedPer
我正在尝试从我的 iOS 设备连接到的蓝牙外围设备获取服务列表。 retrieveConnectedPeripherals 是这样做的方法吗?如果是这样,我需要什么 CBUUID 来检索具有免提服务的
我是一名优秀的程序员,十分优秀!