Android 蓝牙A2DP模式

Android 蓝牙A2DP模式,android,bluetooth,Android,Bluetooth,我对蓝牙应用开发完全陌生。什么是蓝牙模式?它是设备的硬件规格吗?带有蓝牙的android手机能否在A2DP配置文件中充当发送方和接收方?蓝牙配置文件是关于蓝牙设备的协议和功能的规范。它不仅仅是一个硬件规范,因为实现一个概要文件通常取决于软件堆栈和硬件芯片。您可以从中找到更多信息 在A2DP的情况下,它是专门为音乐流而设计的。它不能用于任意数据通信(如果您所说的“发送方和接收方”)的话。如果您正在寻找通过蓝牙传输的通用数据通信机制,那么您需要的是串行端口配置文件(SPP)(有些人也称之为RFCOM

我对蓝牙应用开发完全陌生。什么是蓝牙模式?它是设备的硬件规格吗?带有蓝牙的android手机能否在A2DP配置文件中充当发送方和接收方?

蓝牙配置文件是关于蓝牙设备的协议和功能的规范。它不仅仅是一个硬件规范,因为实现一个概要文件通常取决于软件堆栈和硬件芯片。您可以从中找到更多信息


在A2DP的情况下,它是专门为音乐流而设计的。它不能用于任意数据通信(如果您所说的“发送方和接收方”)的话。如果您正在寻找通过蓝牙传输的通用数据通信机制,那么您需要的是串行端口配置文件(SPP)(有些人也称之为RFCOMM)。Android SDK用户指南提供了关于如何使用RFCOMM API的详细信息:

有两个A2DP配置文件:A2DP源(发送音频的设备)和A2DP接收器(接收和播放音频的设备),就像蓝牙耳机一样

您的手机硬件支持这两种配置文件,但安卓系统中没有实现A2DP接收器,所以您不能只编写应用程序来使用它。您需要修改Android源代码并构建自己的ROM

如果您想这样做,您需要一个具有可用源代码的设备(Nexus或CyanogenMod支持的设备)

如果您使用Android 5或更高版本,启用A2DP接收器并不困难,因为它已经包含在源代码中,但已被禁用

如果您使用安卓4.2-4.4,则需要从安卓5移植A2DP接收器类

对于Android 4.2之前的版本,情况就不同了,因为他们使用了不同的Bluetooth堆栈BlueZ(现在他们使用Bluedroid),您可以通过在设备上加根并编辑“audio.conf”来激活A2DP接收器但不幸的是,即使你的手机将广告自己作为一个A2DP接收器,你将听不到声音,因为它没有路由到扬声器,并路由它,你将不得不建立一个修改过的ROM

构建一个ROM可能看起来很复杂,但事实并非如此,特别是如果您使用的是Android 5或更高版本,正如我之前所说的,接收器配置文件已经存在,您需要做的就是在终端中键入6行代码(您需要一个Linux操作系统)并编辑3行代码以启用A2SP接收器并构建您自己的ROM。
如果您对此感兴趣,我可以提供更多详细信息。

那么我的问题是:蓝牙头戴式耳机中的蓝牙模块与手机中的蓝牙模块是否完全相同?我可以使用A2DP从另一部手机播放音乐吗?我明白了。如果你说的是现成的android手机,我不知道有哪款手机可以充当A2DP接收器。我准备编写一个应用程序。但在手机中使用普通蓝牙模块是否可行。或者它需要一个特殊的蓝牙模块吗?恐怕不需要。支持的蓝牙类和配置文件在手机的系统软件中本机实现,普通用户无法修改(除非我们讨论的是社区ROM,如cyanogen)。您有一个使用A2DP的应用程序的源代码,我认为您可能会发现它很有用。