标签: 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万
查看次数

Android 4.3蓝牙低功耗不稳定

我目前正在开发一种将使用蓝牙低功耗的应用程序(在Nexus 4上进行测试).在开始使用Android 4.3中的官方BLE API之后,我注意到在我第一次连接设备后,我很少能够成功连接到该设备或与该设备或任何其他设备进行通信.

按照此处的指南,我可以成功连接到设备,扫描服务和特性,以及读取/写入/接收通知而不会出现任何问题.但是,在断开连接并重新连接后,我经常无法扫描服务/特性或无法完成读/写操作.我在日志中找不到任何内容来说明为什么会发生这种情况.

一旦发生这种情况,我必须卸载应用程序,禁用蓝牙,然后重新启动手机才能再次开始工作.

每当设备断开连接时,我都要确保在BluetoothGatt对象上调用close()并将其设置为null.任何见解?


编辑:
日志转储:对于这些日志,我根据我的手机并在/etc/bluetooth/bt_stack.conf中提升了相关项目的跟踪级别

连接成功 - 重新启动手机并安装应用后首次尝试.我能够连接,发现所有服务/特性,以及读/写.

失败尝试1 - 这是断开上述成功连接后的下一次尝试.似乎我能够发现特征,但是第一次尝试读取时返回了一个空值并且很快就断开了.

失败的尝试2 - 我甚至无法发现服务/特征的示例.


编辑2:
我尝试连接的设备基于TI的CC2541芯片.我获得了TI SensorTag(也基于CC2541),并发现TI 昨天为SensorTag 发布了一个Android应用程序.但是,这个应用程序有同样的问题.我在另外两个Nexus 4上进行了测试,结果相同:第一次或第二次连接SensorTag成功,但是(根据日志)之后无法发现服务,导致各种崩溃.我开始怀疑这个特定芯片是否存在问题?

android bluetooth bluetooth-lowenergy android-bluetooth android-4.3-jelly-bean

186
推荐指数
5
解决办法
10万
查看次数

什么是iBeacon蓝牙配置文件

我想用一些蓝牙低能量开发套件创建我自己的iBeacon.Apple还没有发布iBeacons规范,但是一些硬件开发商已经反向使用AirLocate示例代码设计iBeacon并开始销售iBeacon开发套件.

那么iBeacon蓝牙配置文件是什么?

Bluetooth Low Energy使用GATT进行LE配置文件服务发现.所以我认为我们需要知道属性句柄,属性类型,属性值,以及iBeacon属性的属性权限.那么,对于UUID为E2C56DB5-DFFB-48D2-B060-D0F5A71096E0的iBeacon,主要值为1,次要值为1,蓝牙GATT配置文件服务是什么?

这是我在Apple论坛和文档讨论中做出的一些假设.

  1. 您只需要查看蓝牙外围设备的配置文件服务(GATT)即可知道它是iBeacon.

  2. Major和Minor键在此配置文件服务中的某处编码

有些公司使用iBeacon Dev Kits似乎已经有了这个数字:

希望我们能及时在Bluetooth.org上发布这样的个人资料:https://www.bluetooth.org/en-us/specification/adopted-specifications

reverse-engineering bluetooth ios bluetooth-lowenergy ibeacon

149
推荐指数
4
解决办法
11万
查看次数

了解ibeacon距离

试图掌握与ibeacon(beacon/bluetooth-le/ble)之间距离的基本概念.有关ibeacon可以测量多远的真实文档吗?可以说我距离300英尺...... ibeacon有可能检测到这个吗?

bluetooth objective-c ios bluetooth-lowenergy ibeacon

107
推荐指数
3
解决办法
12万
查看次数

如何在android中以编程方式启用/禁用蓝牙

大家好,

我想通过程序启用/禁用蓝牙..我有以下代码.

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
Run Code Online (Sandbox Code Playgroud)

但是这种代码在SDK 1.5中不起作用.我怎么能在SDK 1.5中做同样的事情.

android bluetooth

101
推荐指数
5
解决办法
16万
查看次数

IOException:读取失败,套接字可能关闭 - Android 4.3上的蓝牙

目前我正试图在我的Nexus 7(2012)上使用Android 4.3(Build JWR66Y,我猜第二次4.3更新)打开BluetoothSocket时遇到一个奇怪的异常.我已经看到了一些相关的帖子(例如/sf/ask/955386141/),但似乎没有提供此问题的解决方法.此外,正如在这些线程中所建议的那样,重新配对没有帮助,并且不断尝试连接(通过愚蠢的循环)也没有任何效果.

我正在处理嵌入式设备(noname OBD-II车载适配器,类似于http://images04.olx.com/ui/15/53/76/1316534072_254254776_2-OBD-II-BLUTOOTH-ADAPTERSCLEAR-CHECK-ENGINE-灯光与你的电话-Oceanside.jpg).我的Android 2.3.7手机连接没有任何问题,同事的Xperia(Android 4.1.2)也可以使用.另一个Google Nexus(我不知道'One'或'S',但不是'4')也因Android 4.3而失败.

这是连接建立的片段.它在自己的Thread中运行,在Service中创建.

private class ConnectThread extends Thread {

    private static final UUID EMBEDDED_BOARD_SPP = UUID
        .fromString("00001101-0000-1000-8000-00805F9B34FB");

    private BluetoothAdapter adapter;
    private boolean secure;
    private BluetoothDevice device;
    private List<UUID> uuidCandidates;
    private int candidate;
    protected boolean started;

    public ConnectThread(BluetoothDevice device, boolean secure) {
        logger.info("initiliasing connection to device "+device.getName() +" / "+ device.getAddress());
        adapter = BluetoothAdapter.getDefaultAdapter();
        this.secure = secure;
        this.device = device;

        setName("BluetoothConnectThread");

        if (!startQueryingForUUIDs()) {
            this.uuidCandidates = Collections.singletonList(EMBEDDED_BOARD_SPP);
            this.start();
        } …
Run Code Online (Sandbox Code Playgroud)

android serial-port bluetooth android-4.3-jelly-bean

95
推荐指数
8
解决办法
12万
查看次数

需要在Android 6.0上启用蓝牙低功耗扫描的位置

升级到Android版本6.0后,只有在设备上启用了位置服务时,蓝牙低功耗(BLE)扫描才有效.请参阅此处以供参考:Android 6.0上的蓝牙低功耗startScan无法找到设备

基本上,您需要为应用程序以及手机启用权限.这是一个错误吗?是否可以在没有实际启用位置服务的情况下扫描?我不想拥有所有应用的位置.

编辑 我没有提到我正在使用该startScan()方法BluetoothLeScanner API 21提供.我可以使用此方法所需的清单中的课程和良好的位置权限.我只是不希望我的应用程序的用户必须在他们的设备(GPS等)上启用位置服务才能使用我的应用程序.

以前,该startScan()方法将在手机上禁用位置服务的情况下运行并返回结果.但是,在Marshmallow上,相同的应用程序将"扫描"但是静默失败并且在手机上未启用位置服务且课程/精确位置权限仍在清单中时未返回任何结果.

android bluetooth bluetooth-lowenergy android-6.0-marshmallow

83
推荐指数
3
解决办法
6万
查看次数

(Dis)使用Windows.Devices.Bluetooth.Rfcomm(WP8.1)连接蓝牙设备

连接和断开蓝牙设备已在Windows Phone/Desktop 8.1上提供了各种结果.我一直在使用Windows.Devices.Bluetooth.Rfcomm命名空间,我试图连接几个具有不同蓝牙版本/类的设备.

  • 版本1.2(1级和2级)
  • 2.0版(1级和2级)
  • 2.1版(1级和2级)
  • 在诺基亚Lumia 625和Lumia 635,戴尔Latitude E6500和Dell Precision M6400上进行了测试.

每当我尝试连接到2.0或2.1设备时,都会出现问题.我第一次尝试连接到每个设备时,一切都会正常,连接将打开.当我随后关闭连接并重新连接设备时,问题就开始了. 在重新连接期间,连接将永远不会打开,调试器将抛出System.Exception:

> Message: No further data is available.
Run Code Online (Sandbox Code Playgroud)

此外,当连接失败时,Windows 8.1设备将继续尝试(不成功)连接到蓝牙设备,即使我自己的应用程序终止.有时,Windows 8.1设备也会将蓝牙设备显示为已连接,而设备会直观地显示它已不再连接.重新连接蓝牙设备的唯一方法是取消配对并关闭/重启Windows设备上的蓝牙.

每当我尝试DeviceInformation在连接失败后进行新的呼叫时,它将拒绝返回我之前尝试连接的设备.

> Message: The service cannot be found in the specified name space.
Run Code Online (Sandbox Code Playgroud)

奇怪的结果,1.2设备完美运行.

清单文件:

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="any">
    <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
  </m2:Device>
</m2:DeviceCapability>
Run Code Online (Sandbox Code Playgroud)

选择设备:

Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));
Run Code Online (Sandbox Code Playgroud)

连接:(id = chatserviceid)

StreamSocket _socket;    
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);
Run Code Online (Sandbox Code Playgroud)

断开:

this._socket.Dispose();
this._socket = null;
Run Code Online (Sandbox Code Playgroud)

我已经研究了MSDN,代码示例,演示版,channel-9视频和StackOverflow,没有资源可以告诉我是否存在问题Windows.Devices.Bluetooth.Rfcomm.

是否有人认识到这些奇怪的结果?难道我做错了什么? …

c# xml windows bluetooth windows-phone

82
推荐指数
1
解决办法
4382
查看次数

蓝牙免提客户端音量控制

我有一个Android设备充当使用hfp的免提客户端设备.

使用以下代码:

我能够接听电话,扬声器和麦克风按预期工作.

我的问题是我似乎无法控制音量.

我尝试使用以下代码行来查找正确的流,但它们似乎都不起作用.

我跟踪了从手机发送到类中客户端的音量命令HeadsetClientStateMachine,在以下链接中的#1822行:来自lolipop的HeadsetClientStateMachine

case EVENT_TYPE_VOLUME_CHANGED:
    if (event.valueInt == HeadsetClientHalConstants.VOLUME_TYPE_SPK) {
        mAudioManager.setStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO, event.valueInt2, AudioManager.FLAG_SHOW_UI);
        mVgsFromStack = true;
       Log.d(TAG, "EventVolumeChange STREAM_BLUETOOTH_SCO value: " + event.valueInt2);
    }
Run Code Online (Sandbox Code Playgroud)

当我更改手机上的音量时,我确实看到日志显示声音的更新值,这意味着setStreamVolume()正在调用该方法,但音量不会改变.

有谁知道可能导致这个问题的原因是什么?

编辑:

我仍然在寻找答案,现在正在寻找音频HAL实现.我怀疑HAL和音频驱动程序之间的链接在某种程度上是不正确的...我不太了解低级别的实现,我不确定我应该寻找什么.

android bluetooth android-4.4-kitkat hfp

80
推荐指数
1
解决办法
3834
查看次数

Android设备可以充当iBeacon吗?

Android设备是否可以充当iBeacon并了解其他Android设备何时进入其范围?那些其他Android设备是否需要打开蓝牙?

如果客户进入我的商店并且他的设备上没有安装我的应用程序,iBeacon可以工作,还是必须先安装应用程序?有很多客户每天访问我们的商店,但如果他们没有安装我的应用程序,iBeacon概念是否有效?

android bluetooth bluetooth-lowenergy android-bluetooth ibeacon

75
推荐指数
3
解决办法
4万
查看次数