标签: ios-bluetooth

启动iOS模拟器时,Bluethooth耳机音乐质量会下降

情况有点类似:

  1. 我正在编写Xcode,同时在我的蓝牙耳机上听音乐...你知道要阻挡世界.

  2. 然后,我开始在iOS模拟器和BOOM中启动我的应用程序突然间,我的水晶般清晰的音乐变得混乱,超低质量,就像它在2个街区之外的浴缸里玩......在20世纪40年代.

  3. 注意:如果我在笔记本电脑或电影院显示器上播放音乐并且我启动了SIM卡,则不会出现质量下降的情况.似乎只是一个Sim - >蓝牙问题.

问题不仅仅是讨厌.因为通常在停止模拟器后,蹩脚的浴缸质量音乐继续.为了解决这个问题,我必须在OSX中打开声音首选项并短暂切换回我的笔记本电脑声音,然后再回到我的蓝牙耳机.

这是一个大问题,因为我每天50x启动模拟器并且必须每次都做这个切换事情以及听40s时代单音乐无线电音质.

仅供参考,我使用的耳机是Plantronics Back Beat Pro,我是最新的固件.我在OSX 10.11.4和Xcode 7.3上......但是这个问题在所有版本中都持续了2年多了.你可以救我从20世纪40年代?

bluetooth core-audio ios-simulator ios-bluetooth

255
推荐指数
4
解决办法
1万
查看次数

如何获得swift中配对的蓝牙设备列表?

我需要将配对的蓝牙设备(iOS设备)列表与iOS设置中"蓝牙"部分的列表相同,如下图所示.

在此输入图像描述

可能吗?
您是否看过任何使用此类功能的应用程序?

我尝试了以下: link1,link2,link3,link4,link5,link6

但没有什么能帮我清楚地得到确切的清单.我希望应该有办法实现这一目标.请分享您的经验,帮助我.谢谢.

external-accessory ios core-bluetooth bluetooth-lowenergy ios-bluetooth

9
推荐指数
2
解决办法
9133
查看次数

iOS检测蓝牙连接/断开连接

即使我的应用程序处于后台,当蓝牙设备与iOS连接或断开连接时是否可以通知?在Android上,我使用ACTION_ACL_CONNECTEDACTION_ACL_DISCONNECTED事件.但我找不到iOS的等价物.

我发现CBCentralManager它可用于监视蓝牙事件,但是当蓝牙设备连接/断开时,我的功能不会被调用,只有当我启用/禁用蓝牙时.这是我的错误还是正常?

我还找到了关于音频路由更改的文档,这也可以是检测蓝牙连接/断开连接的想法.只需检查新路由的种类并检测当时连接的蓝牙设备.

在文档中,我也发现NSNotification类似IOBluetoothHostControllerXXX但没有解释它们.有人已经使用过吗?

有什么更好的东西还是我错过了什么?

bluetooth background-process ios core-bluetooth ios-bluetooth

8
推荐指数
1
解决办法
3709
查看次数

Android 无法检测到 iOS 背景 BLE 广告

当一个 iOS BLE 外围设备进入后台状态时,广告数据包不会以常规方式发出,它们被放置在一个特殊的“溢出”区域,只有另一个 iOS 设备明确寻找该设备才能检测到该区域。

蓝牙外设后台执行模式

也就是说,您应该知道,当您的应用程序在后台时,广告的运作方式与您的应用程序在前台时的运作方式不同。特别是,当您的应用在后台投放广告时:

• CBAdvertisementDataLocalNameKey 广告键被忽略,并且外围设备的本地名称不被广告。

• 包含在CBAdvertisementDataServiceUUIDsKey 广告键值中的所有服务UUID 都放置在一个特殊的“溢出”区域中;它们只能被明确扫描它们的 iOS 设备发现。

Android 中心(扫描仪)有什么方法可以检测任何广告的自定义 UUID,而无需连接到 iOS 外围设备?

ios core-bluetooth bluetooth-lowenergy android-bluetooth ios-bluetooth

8
推荐指数
1
解决办法
1746
查看次数

在没有已发布的GATT配置文件的情况下解释来自BLE设备的数据

作为第三方,是否有一种可行的方法可以正确解释蓝牙低功耗设备中没有已发布的GATT配置文件规范的数据?

BLE装置是一种体重秤,可支持体重,体重指数,体脂和水合程度.我的理解是,没有采用GATT身体尺度的配置文件,例如血压设备或心率监测器(https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx).

使用以下工具:

  • 带有各种BLE实用程序应用程序的iPod(iOS 6.1.3)(Ti BLE Multitool,LightBlue和BLE Utility)
  • 带有nRF主控制面板的Android(4.3)平板电脑(戴尔Venue 8 3830),以及定制的Xamarin开发解决方案

我可以扫描,定位,连接和阅读规模上可用的GATT服务.以上所有工具都为我提供了相同的服务信息.在规模上发现了5项服务:

  • 通用访问(0x1800)
  • 通用属性(0x1801)
  • 设备信息(0x180A)
  • 电池服务(0x180F)
  • 具有自定义128位UUID的未知服务

所有上述工具都能够从已知服务中读取,例如检索电池信息或设备名称.我的假设是具有自定义UUID的未知服务是提供比例数据的服务.

此服务具有5个未知特征,具有自定义UUID:

  • 特征1是读/写
  • 特征2是Read
  • 特征3是读/写
  • 特征4是通知
  • 特征5是Read

使用上面指定的工具从特征1,2和3中读取,每个工具都返回它自己的值,但该值永远不会改变.例如,读取特征1总是返回20个八位字节0x01-0x05-0x06-0x07-0x08和15个0x00个八位字节的值.特征1的后续读取始终返回该值.特征2读取总是返回20个八位字节0x02和19 0x00个八位字节的值.等等.

阅读特征5似乎不返回值,或者更常见于Android,发出配对请求.没有共同的配对代码(如0000或1234等)有效.

特征4似乎是实际传输比例数据的内容.使用上面的工具,我可以启用通知,应用程序检索13个八位字节.例如:

  • FF-16-09-00-03-04-01-00-83-6F-F4-18-0F
  • FF-16-09-00-03-04-01-00-3E-88-F4-18-E3
  • FF-16-09-00-03-04-01-00-C8-89-F4-18-6E

显然,所有这些值都以相同的八位组开头.然而,主要的问题是这些八位字节代表什么,它们如何转化为体重/体重/水合/体脂值,如果事实上它们根本就是这样.

该秤采用Ti CC2541芯片(http://www.ti.com/product/cc2541)构建.

使用Ti的SmartRF协议数据包嗅探器和CC2540 USB评估模块套件,我可以捕获iPhone 5S(iOS 7.1)和规模之间的数据包.这提供了一些额外的见解,但大多只是显示我已经使用其他工具观察到的内容,尽管它处于较低级别.数据包嗅探器提供的任何其他信息仍然会回到同一个问题:规模发送的这些八位字节集代表什么,它们如何转换为weight/bmi/etc?我已经使用了蓝牙核心规范文档,这有助于理解标准功能的八位字节意味着/做什么,但这无助于理解实际的规模数据.

我对蓝牙开发很新,这项练习基本上导致了技术的速成课程.任何帮助表示赞赏.

谢谢.

bluetooth texas-instruments bluetooth-lowenergy android-bluetooth ios-bluetooth

7
推荐指数
1
解决办法
8717
查看次数

使用来自Android或iOS的Microhip的MLDP数据流

Microchip定义了一种通过蓝牙低功耗(BLE)传输数据的方法,并称之为MLDP(Microchip低能量数据配置文件).他们将它构建到他们的RN4020芯片中,甚至还有一个示例Android应用程序.

但是,我找不到协议如何工作或应用程序源的任何规范.我希望能够使用它从Android和/或iOS调试嵌入式设备.

有谁知道这个协议的规范或实现它的软件?

microcontroller bluetooth-lowenergy android-bluetooth ios-bluetooth

7
推荐指数
1
解决办法
8633
查看次数

订阅来自CBC特征的通知不起作用

首先要做的事:运行OSX 10.10.4,iOS 4,Xcode 6.3.2,iPhone 6,Swift

简短的故事:我在这里有一个蓝牙LE设备,我希望在特征值改变时收到通知,例如通过用户输入.尝试订阅它不会成功,而是会产生错误Error Domain=CBATTErrorDomain Code=10 "The attribute could not be found."

说来话长:所以,我有我只要我开始扫描外设BluetoothManager类$CBCentralManager.state.PoweredOn.这很容易,我甚至是一个好公民,专门为有我想要的服务的人扫描

centralManager.scanForPeripheralsWithServices([ServiceUUID], options: nil)
Run Code Online (Sandbox Code Playgroud)

希望这会成功,我实现了以下委托方法:

func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {

    if *this is a known device* {
        connectToPeripheral(peripheral)
        return
    }

    [...] // various stuff to make something a known device, this works
}
Run Code Online (Sandbox Code Playgroud)

所以继续前进,我们得到:

func connectToPeripheral(peripheral: CBPeripheral) {
    println("connecting to \(peripheral.identifier)")

    [...] // saving the peripheral in an array along the way so …
Run Code Online (Sandbox Code Playgroud)

bluetooth ios core-bluetooth bluetooth-lowenergy ios-bluetooth

7
推荐指数
2
解决办法
5564
查看次数

将数据从iOS 7.1发送到iOS 8时,BLE会花费太多时间

我有一个奇怪的问题.我正在开发一个应用程序,我在其中发送20-20字节的块..

一切都很好.

当我将Bytes数据从iOS 8发送到iOS 8设备时,需要大约4-5秒才能从一台设备转移到另一台设备,但我的问题是当我将IBS 7.1的字节数据发送到iOs 8或反向时,它需要将数据从一个设备传输到任何设备需要17-20秒.

为什么在iOS 7.1到iOS 8中花费太多时间或反向?

core-bluetooth bluetooth-lowenergy ios-bluetooth ios7.1 ios8

6
推荐指数
1
解决办法
305
查看次数

警告:不允许使用广告密钥“服务数据”

我正在开发 BLE 外设应用程序。根据要求,广告包中必须包含Service Data字段。我在Android中做到了这一点,数据包应该是这样的:

在此输入图像描述

0x16 是此处列出的服务数据字段https://www.bluetooth.com/specifications/signed-numbers/generic-access-profile/

同样的事情,我在 iOS 中也是这样做的。我使用BluetoothCore框架来实现蓝牙外设。

以下是我应该用来设置服务数据字段值的属性:

advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>
Run Code Online (Sandbox Code Playgroud)

但是我收到了警告:

警告:不允许使用广告密钥“服务数据”

有人可以告诉我为什么以及解决方案是什么吗?

ios core-bluetooth bluetooth-lowenergy ios-bluetooth

6
推荐指数
1
解决办法
2076
查看次数

在 [BluetoothDevice classicDevice] 无法识别的选择器上寻找崩溃源

我看到崩溃实例的大量增加,在一些不同的崩溃报告中,它们都以相同的致命异常结束:

[BluetoothDevice classicDevice]: unrecognized selector sent to instance 0x2805a8ba0

它在 iOS 12 中发生了几次,但在 iOS 13 中它就出轨了。还有人看到这个吗?是否与 iOS 13 中蓝牙的新隐私权限有关?我没有其他线索可循,只是试图找到其他看到这一点的人。

导致它的堆栈跟踪在我的应用程序代码中没有任何内容,只有 AppDelegate 的声明行。它是 Foundation、CoreFoundation 和一些名为 BluetoothSettings 的 Apple 框架的混合体。正如你所看到的,我的崩溃日志丢失了很多细节——可能是 dsyms 有问题,不确定......但他们在这里。

Fatal Exception: NSInvalidArgumentException
-[BluetoothDevice classicDevice]: unrecognized selector sent to instance 0x2805a8ba0
0  CoreFoundation                 0x191b8d54c (Missing)
1  libobjc.A.dylib                0x1918a80c8 (Missing)
2  CoreFoundation                 0x191a8bb60 (Missing)
3  CoreFoundation                 0x191b91bd4 (Missing)
4  CoreFoundation                 0x191b93ac0 (Missing)
5  BluetoothSettings              0x1bb3ae944 (Missing)
6  Foundation                     0x191f56a94 <redacted>
7  CoreFoundation                 0x191ae5478 (Missing)
8  CoreFoundation                 0x191ae54c8 (Missing)
9  CoreFoundation                 0x191ae47c0 …
Run Code Online (Sandbox Code Playgroud)

ios core-bluetooth ios-bluetooth swift ios13

6
推荐指数
1
解决办法
788
查看次数