Tag: bluetooth lowenergy

Android / iOS – BLE – 在BLE设备连接时唤醒已终止的应用程序

Iam创build一个iOS和一个Android应用程序,从蓝牙传感器读取一些数据,并将其保存在一个数据库。 即使应用程序被终止,我也想保存传感器的数据。 仅供参考。 我已经设法读取在iOS和Android的传感器,而应用程序是背景。 但是我关心的是如何使下面的场景工作: – 传感器与电话断开 – 用户从任务pipe理器终止应用程序 – 用户将BLE传感器连接(并配对)至设备 – 应用程序在后台唤醒并读取传感器输出,然后返回hibernate状态。 有什么build议么?

蓝牙LE应用程序,如何构build它跨平台(iOS-Android)?

我正在开发一个与蓝牙LE设备交谈的应用程序。 我想要一些方法来避免开发两次 ,iOS和Android。 是否有一个跨平台的应用程序框架,对蓝牙LE有很好的支持? 我已经快速浏览了Cordova(PhoneGap),Appcelerator,Xamarin等框架(通常的嫌疑犯:例如这个列表 ),但是我不知道他们是否(a)在每个平台上都支持蓝牙LE, (b)如果他们这样做,无论是通过本地调用(如何访问?)或某种types的包装到本地API(包装看起来是什么?),和(c)如果它是一个包装,它是多么完整是,它是多么稳定。 如果您有这方面的经验,您能否在不同的框架中总结蓝牙LE支持的状态? 编辑从挖掘到各种选项和从下面的答案一些信息: cordova:几个开源插件,例如https://github.com/evothings/cordova-ble https://github.com/don/cordova-plugin-ble-central https://github.com/randdusing/ BluetoothLE (不是一个完整的列表)。 Evothings是一个不错的Cordova +蓝牙设置。 这些工作在其他基于cordova的应用程序框架,如Appery.io,Telerik AppBuilder,Ionic Creator? Xamarin:这只是通过MonoTouch.CoreBluetooth和Android.Bluetooth使用本地API。 这意味着使用它们的代码实际上并不是跨平台的,但是它们可能和本地API一样工作(因为它们本质上是本地API)。 Appcelerator有蓝牙的第三方商业插件( https://marketplace.appcelerator.com/apps/3834和https://marketplace.appcelerator.com/apps/6611 ),没有内置的支持。 这些工作吗? PS除了蓝牙,我的需求是非常小的:这个应用程序将有很多的UI元素,但不是一个复杂的types,只是一堆button/checkbox/滑块在一堆不同的屏幕上(这将是非常繁琐的维护两平台)。 我还需要对REST API进行一些调用。 速度不是非常重要,没有太多的应用程序逻辑(它现在主要用C语言编写),原生UI的外观并不重要。 然而,在老版本的平台上工作是非常重要的,理想情况下是Android 4.3和iOS 7.0。

不正确的BLE外围设备名称与iOS

我正在编写一个iOS应用程序来与BLE设备进行通信。 设备可以在连接之间更改名称(不在BLE连接期间),但iOS拒绝更改设备名称。 例如:当它的名字是SadName时,我可以连接到设备。 我断开它,closures应用程序等,并将设备的名称更改为HappyName。 但是,当我扫描设备的iOS仍显示为SadName的外设名称。 如果我debugging应用程序,并看看: (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI peripheral.name的值是SadName,所以我不认为这是我在代码中解释不正确的东西。 我应该提到,当我扫描设备时,我的代码是: [self.CM scanForPeripheralsWithServices:nil options:0]; // Start scanning 我猜测,这只是因为设备UUID是相同的,所以iOS是从它的caching设备列表拉,但我想重写。 思考? 对不起,我是iOS新手。 干杯 – MSchmidtbauer

iBeacon有多安全?

iBeacon是一个有前途的新技术。 但是它有多安全? 当启用encryption时,蓝牙低功耗(BLE)可以是安全的。 然而,这只是在沟通成立的情况下。 但是iBeacon框架并不意味着允许设备之间的通信。 甚至不可能通过iBeacon框架进行通信(CoreBluetooth然后应该被使用)。 一个iBeacon只能广告(数据)。 但是,这些广告数据包是安全的还是公开的? 我错过了关于iBeacon的更详细的(技术)报告。 另一个不太清楚的是谁开始“说话”? 是广告iBeacon设备还是监控应用程序/设备? 广告iBeacon设备是否总是广告?

了解iBeacon数据:电源字段和其他字节

我是蓝牙系统的新手,我正试图理解用于苹果新技术的数据:iBeacon。 已经有一些很好的答案解释了它是如何工作的,我一直在阅读我能find的所有东西(尤其是蓝牙规范)。 不过,我错过了一些观点,我将首先举个例子:(我正在使用设置广告数据命令 ,这里忽略了OGF之前的hcitool cmd ) 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0 00 00 00 00 C5 00 我将在这里列出我不了解或find的信息。 有没有关于OGF的任何信息(这里是0x08 )? 我知道它代表的是OpCode Group Field,但是跟OGF一样,OCF没有find任何东西。 02 01 1A 1A字节代表什么? 我知道第一个字节1E告诉了其余数据的长度,在那行之后,从FF开始,你得到了制造商的特定数据。 但是我找不到这4个字节的内容。 功率字节是如何工作的? 这是C5 。 […]

如何检测我的苹果设备是否支持蓝牙低功耗

有一个API可以告诉我的应用程序运行的苹果设备(iPad / iPod / iPhone)是否支持蓝牙低功耗(BTLE)。

iOS CoreBluetooth:centralManager:didConnectPeripheral / didFailToConnectPeripheral:没有被调用

我把我的头发从这个问题中解脱出来。 我试图连接到BLE设备 ,无法看到我在下面的代码中做了什么错误。 – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _cm = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; } – (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; } – (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } + (NSString*)UUIDString:(CFUUIDRef)uuid { CFStringRef string = […]

CLLocationManager didEnterRegion:与应用程序暂停时使用iBeacon

我试图唤醒我的应用程序(重新启动它),当它进入我定义的信标区域,但我不能得到它的工作。 这是我正在使用的步骤和代码。 将“位置更新”后台模式设置为YES。 监视我的CLBeaconRegion NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"EBEFD083-70A2-47C8-9837-E7B5634DF524"]; beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"daRegion"]; beaconRegion.notifyEntryStateOnDisplay = NO; beaconRegion.notifyOnEntry = YES; beaconRegion.notifyOnExit = YES; self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; [self.locationManager startMonitoringForRegion:beaconRegion]; 实现委托方法 – (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region; – (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region; – (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region; 任何我可能会错过的东西? 我已阅读文档,博客文章,论坛,似乎没有任何工作。 这是我阅读的网站之一, […]

IOS Bluetooth LE:无法使用存储的配对数据进行连接

我被困在我的IOS开发中,我需要帮助。 我不是专家,这也许是一个愚蠢的问题。 我正在尝试做什么 我试图将我的应用程序连接到需要配对的蓝牙LE设备。 目前的行为 没有配对设备和我的iPhone应用程序没有问题。 我能够连接,重新连接和读/写特性没有任何问题。 但是,如果设备需要配对 ,我只能在配对popup确认之后第一次读取/写入特征。 下一次,我发现并连接到我的设备的应用程序,但我没有读/写特性数据的权利,因为(我猜)我没有使用配对信息。 最后… 花了几个小时在网上search没有运气这里是我的问题: 如何使用手机中存储的配对数据将我的应用程序从我的iPhone应用程序连接到蓝牙LE设备? 我错过了什么吗? 是否有可能不是IOS问题,因为如果连接设备的手机中存在配对数据,它会自动使用? 有没有与蓝牙LE和IOS的经验,以帮助我? 更新2013-10-27 我已经发现, 如果配对存在 (没有确认popup),那么通过配对authentication之后就不能读取受保护的特性 。 没有保护的特点没有问题! 我不知道为什么发生,但行为是IOS应用程序永远不会收到设备的答案。 所以如果第一次阅读完成后,不会造成问题。 这里是我用来发现评论中的数据阅读特征的代码。 – (void) peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error; { NSArray *characteristics = [service characteristics]; CBCharacteristic *characteristic; if (peripheral != servicePeripheral) { NSLog(@"Wrong Peripheral.\n"); return ; } if (service != batteryService) […]

iOS蓝牙双模式; 将BLE(GATT)同时连接到已连接的BR / EDR(A2DP / HFP)立体声耳机

我正在使用经典的configuration文件(HFP,A2DP,AVRCP)开发带有蓝牙function的立体声耳机,正如人们所期望的伊纳立体声耳机一样。 不过,我想为iOS部署一个远程控制应用程序,并将其同时用于其他经典链接,但是我在devise中使用的双模式芯片组并不像我预期的那样运行; 耳机被设置为外设,让iOS设备充当中心。 因此,外围设备广告其BLE服务(与我的具体的128位UUID),都是好的。 我可以从任何中央浏览外设,但只有当我没有连接经典configuration文件(例如,而不是streamaudio)。 我的设备似乎无法宣传BLE,而与HFP和/或A2DP连接! 不过,我已经看到相同芯片组的BLE中央显示器,扫描并连接到其他BLE外设,同时通过A2DPstream式传输audio。 然而,在该设置中,该设备作为A2DP接收器连接到iPhone,同时通过BLE扫描/连接到作为BLE外围设备的第三单元。 因此,不能将Classic和Smart Bluetooth技术点对点地连接到同一个设备上。 是否存在双模式限制,即在支持/连接到Bluetooth Classicconfiguration文件时不能充当外设? 那种情况下只支持中央模式? 仅供参考,我正在使用CSR的8670芯片组。 UPDATE 新的答案添加。 我的道歉没有澄清/清理我以前的答案,直到现在 – 时间过得真快!