问题标签 [bluetooth-sco]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1017 浏览

android - 蓝牙 SCO 到单个 android 应用程序,而不是整个 android 系统

我在我的应用程序中使用以下代码将蓝牙耳机用于音频输入和输出。它工作正常。

但是,当我使用音乐播放器应用程序播放歌曲时,随着我的应用程序也在运行,歌曲正在蓝牙耳机中播放。这是因为我把安卓系统的音频管理器改成了蓝牙SCO。

但我的要求是音频输入和输出必须仅与我的应用程序的蓝牙耳机一起使用,并且不应该干扰其他应用程序,这可能吗?或不 ??

请提出您宝贵的建议。任何帮助将不胜感激。谢谢。

0 投票
2 回答
8103 浏览

android - 将音频从 android 应用程序流式传输并播放到任何可用的扬声器,如 A2DP、汽车扬声器等

从我的 android 应用程序中,我想将音频流式传输到任何可用的扬声器,如A2DP扬声器、docking扬声器或car扬声器。

为此,我想使用蓝牙连接并通过蓝牙连接流式传输......

我看到了以下链接

在android上如何从a2dp重新路由音频

setBluetoothA2dpOn(布尔值)

Android 2.3:如何从 SCO 切换到 A2DP 以获得功能强大的蓝牙扬声器?

但是我到处都发现了相同的..即

请指导我如何做到这一点..或者建议是否可以使用其他方式完成..任何帮助/建议表示赞赏。

编辑

清单中的许可:

代码 :

0 投票
2 回答
24963 浏览

android - 如何使用 BluetoothHeadset API 获取蓝牙连接的设备

我想获取蓝牙连接设备的列表……而不仅仅是配对设备。

BluetoothHeadsetAPI 级别 11中找到了 API,它提供getConnectedDevices()了获取已连接蓝牙设备列表的方法。

如何使用此 API 获取蓝牙连接设备的列表?

0 投票
1 回答
4383 浏览

android - 安卓蓝牙SCO

我在我的 android 应用程序中遇到了蓝牙 SCO 音频的问题。

我为动作 ACL_CONNECTED 和 ACL_DISCONNECTED 注册了一个接收器,以捕获蓝牙 SCO 设备连接和断开连接。在收到 ACL_CONNECTED 时,我正在检查蓝牙设备是否有音频服务(耳机),如果有音频服务,我正在实例化 AudioTrack(new AudioTrack(....))并启动蓝牙 SCO(startBluetoothSco(); setBluetoothScoOn(true);)。

我的应用中有一个按钮可以将 pcm 数据写入 AudioTrack。在这个应用程序中,我听不到我写的 PCM 数据的声音。

我尝试不使用任何接收器,onCreate()仅实例化 AudioTrack 并启动蓝牙 SCO。在启动应用程序之前,我将耳机连接到我的设备并进行了测试,它工作正常。

但是,为什么我的应用程序在运行时建立蓝牙 SCO 连接时无法工作,具体取决于 ACL_CONNECTED 意图。

如果有人知道解决方案,请回复我。我添加了所有必需的权限 BLUETOOTH、BLUETOOTH_ADMIN、MODIFY_AUDIO_SETTINGS(不要报告这些权限中的拼写错误)。

0 投票
0 回答
1210 浏览

java - 使用 bluecove 和 BlueSoleil 堆栈创建蓝牙代理

我有图书馆http://code.google.com/p/bluecove/并且我已经安装了 BlueSoleil http://www.bluesoleil.com/index.aspx和一个兼容的蓝牙加密狗。

我想创建一个 Java 应用程序(在 Windows 7 x64 中运行)作为中继器来增强我的 android 手机和免提设备之间的信号。免提设备的特点是:

我想有两种方法:

  1. BlueCove Java 应用程序将与这两种设备配对,并为手机列出一个客户端,并作为免提设备的音频网关。然后在它们之间简单地传递音频和其他数据作为代理。

  2. BlueCove Java 应用程序将充当低级协议代理,只接受所有请求并将它们转发到另一个端点设备,反之亦然。

一些可能有帮助的信息:

bluecove 可以使用这个堆栈吗?还是其他堆栈?

0 投票
2 回答
1122 浏览

android - 排队蓝牙连接请求并同时接受

在我的 Android 应用程序中,我可以接受从 BT 设备(SPP 配置文件)发送的连接请求。那些 BT 设备定期发送连接请求,应用程序接受它。但现在我的问题是,我可以与多个设备配对,但想定期与配对设备通信。所以我想在这方面进行澄清。如果应用程序与一台设备通信,同时另一台设备发送连接请求,那么我可以使用 BluetoothServerSocket 通过我的应用程序接受此连接请求吗?如何?

0 投票
0 回答
3754 浏览

android - BluetoothHeadset:为什么需要使用定时器来调用 startVoiceRecognition?

我写了一些代码来检测蓝牙耳机连接并通过耳机启动音频。对于 API 11 及更高版本,可以在连接耳机时调用 startVoiceRecognition。所以几个用例如下:

  1. 耳机在应用程序启动之前已打开 应用
    程序应在启动时检查耳机是否连接并建立音频连接。

  2. 用户在应用程序的生命周期内打开耳机应用
    程序应注册耳机连接状态的广播,并在接收到连接状态时启动音频连接。

第二个用例有问题。当收到连接状态时,我调用 startVoiceRecognition,但它总是返回 false。所以我必须实现一个计时器,大约一秒钟后,调用将返回 true。我猜操作系统和耳机需要一些时间才能让一切准备就绪。有谁知道如何在不实现计时器的情况下获得耳机音频连接。如果不可能,是否应该由操作系统而不是应用程序来处理这种情况(例如 READY_FOR_AUDIO_CONNECTION 广播)?

以下是 API 11 或更高版本的完整工作代码。

清单权限

代码

布局文件

0 投票
1 回答
2969 浏览

android - 如何在 Android 的蓝牙上播放文字转语音?

我是安卓新手。我创建了一个可以使用 Android Text-To-Speech 读取传入消息的应用程序。到目前为止,它很好。现在用户想要它必须通过配对的蓝牙播放。

我已经阅读了所有的论坛,但我没有得到它。现在我如何在蓝牙上播放我的 TTS 引擎?

有人知道吗?

提前致谢。

0 投票
1 回答
1485 浏览

bluetooth - 蓝牙可以在无连接(单向)模式下工作吗?

我已经看到一些关于蓝牙 4.0/LE 提供此功能的参考,但我不确定从哪里开始或如何实现它。

明确地说,我的意思是真正的无连接,只有一个设备上的接收器和另一个设备上的发射器。(或者,更具体地说,一个设备上的强大发射器和另一个设备上的弱发射器,因此可以配对设备)。

诸如“即时警报服务”之类的东西听起来不错,但它是否好得令人难以置信?很难判断信号在哪一层是“无连接的”。任何人都可以指出一些文档/实现示例吗?

0 投票
1 回答
863 浏览

android - 带有日产汽车收音机的 Android 蓝牙 SCO

在我们了解细节之前,先介绍一下背景:

  • 车型:Nissan Note(英国 2011 车型)
  • 设备:Nexus 4
  • 操作系统:Android 4.3 库存

当手机通过蓝牙连接时,我正在尝试创建一个应用程序来在我的汽车中进行语音识别和合成。汽车音响系统不提供自己的语音识别,而是通过触发意图 android.intent.action.VOICE_COMMAND 将其委托给手机

设备上用于处理此问题的默认应用程序是 Google 搜索应用程序,它具有免提拨号的特定活动。这个应用程序的语音识别很糟糕,但确实演示了系统应该如何工作 - 激活后,汽车在应用程序运行时在手机屏幕上显示“语音识别激活”,然后在应用程序退出时将其隐藏。

我遇到的问题是,虽然我可以通过调用 AudioManager.startBluetoothSco() 来显示此标签,从而通过汽车扬声器播放音频并通过汽车麦克风录制,但 AudioManager.stopBluetoothSco() 不会在汽车中禁用此模式,并且它仍然显示“语音识别激活”。这是一个问题,因为在蓝牙连接关闭并重新打开之前,汽车不会启动应用程序。

我的实验已经证实是 AudioManager.startBluetoothSco() 启用了汽车中的模式,并且 AudioManager.stopBluetoothSco() 似乎具有改变汽车产生的环境声音的效果(当启动时通常会听到非常微弱的嘶嘶声)发出此命令时,音频系统处于活动状态将停止)但看不到其他效果。

我不确定是否通过调用 AudioManager.startBluetoothSco() 隐式激活了其他东西,然后必须隐式停止,但我目前不知道该尝试什么。