如何使Android手机成为蓝牙耳机?

是的,我知道Android已经实现了蓝牙耳机configuration文件,但它是在audio网关angular色中,而不是在HeadSetangular色中。

我想要做的是开发一个Android手机上的应用程序,将作为一个蓝牙耳机,所以它可以连接到我的笔记本电脑通过蓝牙。 当我尝试给某人打电话时,我可以使用手机拨打他,而我的应用程序会通过蓝牙将语音转发到我的笔记本电脑上,另一个运行在笔记本电脑上的应用程序将获取语音数据并将其转发到Skype或GTalk或某些其他的VoIP程序。

换句话说,如何在Android手机上实现耳机angular色中的耳机configuration文件? 提前致谢!

Solutions Collecting From Web of "如何使Android手机成为蓝牙耳机?"

从android方面来说,我认为最好的解决scheme是打开你的计算机上的服务连接:

 URL url = new URL("http://192.186.0.1/path/to/service"); URLConnection connection = url.openConnection(); 

获取它作为一个OutputStream:

 OutputStream out = new BufferedStream(connection.getOutputStream()); 

然后使用AudioRecord通过logging的数据发送:

 public static final int DEFAULT_SAMPLE_RATE = 8000; private static final int DEFAULT_BUFFER_SIZE = 4096; private static final int CALLBACK_PERIOD = 4000; AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, DEFAULT_SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_DEFAULT, AudioFormat.ENCODING_DEFAULT, DEFAULT_BUFFER_SIZE); recorder.setPositionNotificationPeriod(CALLBACK_PERIOD); int bytesRead = 0; ByteBuffer buffer = ByteBuffer.allocateDirect(DEFAULT_BUFFER_SIZE); while ((bytesRead = recorder.read(buffer, DEFAULT_BUFFER_SIZE)) > 0) { out.write(buffer.array(), 0, bytesRead); } 

所有这些都应该在一个单独的线程上完成,以避免崩溃应用程序和一个机制来处理logging停止或连接丢失。 此外,我很确定它应该工作在无线上网,虽然我不知道它是否会与蓝牙相同(虽然大多数设备与BT有wifi现在一天,你会得到更多的带宽)

我没有testing这个代码,所以我不是100%确定它会工作。

接下来的事情就是在机器上将audio转换成渴望的应用程序,但这是我的经验。 我想你将不得不做一个虚拟驱动程序或类似的东西。 还必须对从桌面应用程序发送到手机的audio进行相反的处理(我对这部分感兴趣,因为它也是制作一个用于观看电影的好的无线耳机)。

这是我的2美分; 我很想知道它是否有效。 ;)

我不知道如果我明白了真正的问题或你的主要目标…但我已经在这里张贴如何通过蓝牙在您的耳机接收和发送声音。

我希望能帮助你…