核心蓝牙框架不扫描所有BLE设备和苹果BLE设备
我正在使用核心蓝牙框架和扫描很少的设备,如micromax A250,micromax A116,三星宏碁,HTC 610和iPod 5s,那么我无法扫描三星,HTC和iPod可能是什么原因?请提前帮我解决谢谢。核心蓝牙框架不扫描所有BLE设备和苹果BLE设备
代码
// object creation
@IBAction func btnScanClicked(sender:UIButton)
{
var centralManager:CBCentralManager = CBCentralManager(delegate: self, queue: nil)
self.centralManager = centralManager
}
// method called whenever the device state changes.
func centralManagerDidUpdateState(central: CBCentralManager!) {
if central.state == CBCentralManagerState.PoweredOff
{
println("bluetooth is off")
}
else if central.state == CBCentralManagerState.PoweredOn
{
central.scanForPeripheralsWithServices(nil, options: nil) // scanning devices
println("bluetooth is on")
}
else if central.state == CBCentralManagerState.Unknown
{
println("bluetooth is unknown")
}
else if central.state == CBCentralManagerState.Unsupported
{
println("bluetooth is unsupported")
}
}
// method to discover peripherals:-
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!)
{
if peripheral != nil{
println("discovered \(peripheral.name)")
}
else
{
println("No device found")
}
self.peripheral = peripheral
peripheral.delegate = self
central!.connectPeripheral(peripheral, options: nil)
}
// method to connect:-
func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!)
{
peripheral.delegate = self
peripheral.discoverServices(nil)
if ((peripheral) != nil)
{
var state = peripheral.state == CBPeripheralState.Connected ? "yes" : "no"
connected = "Connected \(state)"
println("connected \(connected)")
}
}
Android操作系统不支持使用手机作为一个外围设备,仅作为主站。
除非iPhone正在运行软件,否则iPhone不会像外设一样工作。您可以在其开发人员门户网站上的苹果BTLE_Transfer示例应用程序中找到iOS设备广告的示例代码,作为外设。
If我正在使用硬件与iPhone通信,然后在硬件中,我还需要运行软件与谁的帮助,我可以连接两个设备与蓝牙? – 2014-10-08 04:39:20
我完全不理解你的问题。我对android蓝牙4.0协议栈的理解有限,他们不支持将手机变成外设所需的协议位,因为“外设”是在iOS CoreBluetooth环境中定义的。有没有解决方法?我不知道。我想有可能使用一个替代的协议栈,但这意味着在实际意义上,我不知道。我的Android知识有限。 – CuriousRabbit 2014-10-09 23:18:44
您是否知道这些设备正在广告BLE服务?您是否尝试过应用商店中的LightBlue应用? – Paulw11 2014-10-07 06:16:55
这些所有设备都是蓝牙版本4.0,所以它必须是BLE设备,我还没有试过LightBlue应用程序它是我不知道的东西。 – 2014-10-07 06:26:14
仅仅因为这些设备是BT 4.0并不意味着他们正在积极投放广告服务。在表面上你的代码看起来很好,它正在寻找一些设备,所以这是为什么它与另一个应用程序检查是很好的。 LightBlue应用程序是免费的,将显示广告BLE设备 - https://itunes.apple.com/au/app/lightblue-bluetooth-low-energy/id557428110?mt=8 – Paulw11 2014-10-07 06:57:40