问题标签 [bluetoothheadset]

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 回答
148 浏览

android - STATE_CONNECTED 并不意味着它真的是 CONNECTED?

如果我们看一下这个,它会说:

Android一次支持连接一个蓝牙耳机。

还有的解释getConnectedDevices()

返回处于状态的设备集STATE_CONNECTED

该方法的返回类型是List<BluetoothDevice>,在我的情况下它返回多个。一款用于 Galaxy Watch,一款用于 Galaxy Buds。

我知道如何判断当前哪个是活跃的。当前正在使用的将在BluetoothHeadset.isAudioConnected()被调用时返回 true。所以我不是在问如何在这里找到活动的蓝牙耳机设备。我宁愿试图理解STATE_CONNECTED真正的含义。

我认为这对其他人也很有用,因为有很多类似以下的答案,在某些情况下不会按预期工作:

如果您只想检查您的用户是否在打电话,这不是正确的。这是因为用户的蓝牙耳机会STATE_CONNECTED在蓝牙耳机打开并与智能手机同步后立即变为。

那么,究竟是STATE_CONNECTED什么?

0 投票
1 回答
37 浏览

android - Android Studio 耳机控制按钮点击事件错误

当我在方法中调用actionPlaying按钮时,我在我的 Android 应用程序中收到一条错误消息。onPlay

这是我的代码:

MainActivity

关闭应用程序时显示此错误消息

Logcat 错误

我为耳机按钮事件创建了此代码,但它不起作用。

0 投票
1 回答
251 浏览

java - 未能捕捉到 android.intent.action.MEDIA_BUTTON

我使用 TextToSpeech 阅读一些文本的应用程序完成了 90%,但已经在这部分停留了几天。我想要的只是让我的蓝牙耳机(小米的 Mi 运动蓝牙耳机)的播放/暂停按钮来播放/暂停 TextToSpeech。我认为这是我需要捕捉的 android.intent.action.MEDIA_BUTTON ,所以我添加了这些:

在 AndroidManifest.xml 中:

然后是 ButtonReceiver.java 类

调试文本不显示。虽然如果我更改 <action android:name="android.intent.action.MEDIA_BUTTON"/> <action android:name="android.media.VOLUME_CHANGED_ACTION"/>,当我按下耳机的音量增大或减小时它会显示文本,但这并不是我想要的。我只希望应用程序响应播放/暂停按钮。

然后我读到我需要使用registerMediaButtonEventReceiver,所以我尝试在我的 MainActivity.java 中添加它:

还是行不通。此外,它说不registerMediaButtonEventReceiver推荐使用,所以我想知道这是否是它不起作用的原因。

官方文档页面进一步阅读,它告诉我们:

如果您运行的是 Android 5.0(API 级别 21)或更高版本,请调用 FLAG_HANDLES_MEDIA_BUTTONS MediaBrowserCompat.ConnectionCallback.onConnected。这将自动调用您的媒体控制器的 dispatchMediaButtonEvent(),它将键代码转换为媒体会话回调。

我觉得这很愚蠢,因为我不需要这个额外的模块来播放媒体。我只需要检测耳机按钮按下。无论如何,我尝试实现 MediaSession 但很快就放弃了,因为我的应用程序不是音频播放器应用程序,所以很快就结束了太多对我的应用程序无用的代码!

有什么建议吗?我应该怎么办?

0 投票
0 回答
123 浏览

android - 从 android 连接到蓝牙 HSP/HFP 服务

我正在尝试构建一个应用程序,该应用程序允许我接听来自我的 PC 的来电,到目前为止,我能够在 Python 中使用 Pybluez 宣传一项服务。

现在,我如何从 android 连接到该服务?

0 投票
0 回答
20 浏览

android - Android 未注册从蓝牙耳机发送的操作

确定蓝牙耳塞何时向 Android 设备发送命令以继续在应用程序中再现音频的方式存在问题。

通过此代码可以轻松检查设备是否已断开连接并重新连接:

所以这是简单的事情在这里解释:Android文档

如果您使用耳塞,您将有一些额外的操作(例如,当您将它们从耳朵中移除时,Apple 会暂停音频源,当您按下它们上的按钮时,Mi 会暂停音频源等等......)。在这里,我们正在监听 AudioManager 的更新,当操作完成时,我们会得到 AudioManager.SCO_AUDIO_STATE_DISCONNECTED。

当您再次按下芽上的按钮/将它们放入耳中时,问题就开始了。我应该寻找什么以及我应该寻找什么侦听器才能拦截此事件?如果是一个事件。在 onReceive 方法中,我没有从意图中得到任何操作。

我们应该继续复制,返回音频,但我无法注册任何与之相关的广播。

我究竟做错了什么?

0 投票
0 回答
13 浏览

avfoundation - AVFoundation 使用蓝牙耳机录制视频

我想用蓝牙耳机使用 AVFoundation.framewrok 录制视频。

使用此代码,但它对我不起作用。请给我一些建议。谢谢!

0 投票
0 回答
37 浏览

android - 我如何拨打号码或处理来电或使用蓝牙 HFP 配置文件从 Android 应用程序创建拨出电话?

我如何理解蓝牙 API 有两个 Java 类,用于在应用程序中包含 HFP 配置文件: BluetoothHeadset , BluetoothHeadsetClient 。但是在我的 Andoid 工作室中,我没有 BluetoothHeadsetClient,只有 BluetoothHeadset。我如何拨打号码或处理来电或从 Android 应用程序创建拨出电话?

如果我写

我得到那个错误:

此致

0 投票
0 回答
19 浏览

android - 如何接收来自 Dellking H4 蓝牙耳机的 PTT 按钮按下事件?

我正在尝试连接到 Dellking H4 蓝牙耳机并从蓝牙耳机接收 PTT 按钮按下事件。我可以使用以下代码从 Dellking H2 耳机获取 PTT 按钮按下事件

此代码适用于 Dellking H2 蓝牙耳机,但不适用于 Dellking H4。代码在 停止运行inputStream?.read(mmBuffer)。我无法接收任何字节流。但是当我关闭设备时,我可以在 Socket 关闭时获得 IOException。任何帮助深表感谢。

0 投票
0 回答
83 浏览

android - VideoCall活动蓝牙audioManager不发送声音

在我的应用程序中,我创建了一个 WebRtcAudioManager 来处理用户可用的多个输出,以便他可以重定向他选择的声音。我创建的经理类如下。

从该类中,用户可以在活动中观察当前选择哪个设备作为声音输出,他也可以选择声音输出。这是根据声音输出设备重定向声音的活动部分

在代码下方的某个地方,在 listView 中显示了一个设备选择

我有两个问题。

  1. 每当我连接了蓝牙设备时,当蓝牙设备连接到手机时,声音就会进入蓝牙。一旦我选择另一个输出(例如扬声器),声音就会按预期进入扬声器。从那时起,如果我想通过选择蓝牙作为输出设备再次听到蓝牙的声音,声音只会传到手机的听筒。

  2. 当蓝牙设备可用时,我希望蓝牙设备成为默认设备,否则手机的扬声器。

有人可以弄清楚如何解决这些问题吗?谢谢

0 投票
0 回答
35 浏览

android - 检测蓝牙耳机按键Android

我正在尝试检测蓝牙耳机的按键。覆盖 onKeyDown 和 dispatchKeyEvent 方法可以检测正常的耳机按压,但不能检测蓝牙耳机。与该主题相关的其他问题来自很久以前,因此由于不推荐使用的方法等原因,它们没有用处。