java - 带耳机的蓝牙安卓服务器客户端

标签 java android bluetooth uuid headset

我正在尝试在 android 上创建一个服务器,它将监听传入的连接,例如我拥有的特定耳机。

我已经阅读了很多教程、StackOverflow 中的帖子和来自 Android|Developer 的帖子,但我似乎不明白一些事情。

1) UUID ,它是每个蓝牙设备的特定地址吗?还是需要在服务器和客户端中才能创建连接的共享 key ?我的猜测是后者,因为那里还有 MAC 地址 ...

2) 当我将耳机与手机配对时,耳机会保存上次配对设备的 MAC\UUID 吗?

3) 蓝牙芯片是否以这种方式工作?手机一开机就立即连接到配对设备,所以我的猜测是它为每个配对设备打开一个套接字并等待它打开,是这样吗?

4) 是否有可能完成我正在尝试的事情?意思是创建一个 BluetoothServerSocket 来接受来自耳机的连接?

服务器端代码示例:

//This may b needs to be the UUID of the headset ? or special one ? or what ?
UUID myUUID = UUID.fromString("0000111e-0000-1000-8000-00805f9b34fb"); 
private final BluetoothServerSocket mServerSocket;
private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(Activity.APP_NAME, myUUID);
mServerScooket = tmp;
//Im hoping that this will block until the specific headset will be turned on 
socket = mServerSocket.accept();

提前致谢。

最佳答案

1) UUID ,是蓝牙通信的特定ID。当您在 Android 中创建蓝牙套接字时,listenUsingRfcommWithServiceRecord(Activity.APP_NAME, myUUID); 要求 Android 将与 UUID 匹配的蓝牙连接重定向到您的应用。

2) 我不确定。这取决于耳机可以建立的连接类型。当你要用的时候,是需要在Android中选择它,还是直接放上去就可以了?

3) 我不知道。但是你可以看看 Android 源代码 ;)

4) 如果蓝牙耳机可以创建连接套接字,是的,这是可能的

希望这有帮助;)

关于java - 带耳机的蓝牙安卓服务器客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203962/

相关文章:

java - 如何通过两个帐户使用 AmazonSQS 监听器

java - 在 Java 中禁用退格键

Android:如何确定 TextView 中最后一个完全可见的字母?

android - 如何检测应用程序编辑文本中的粘贴事件?

audio - HTML5 蓝牙和音频

java - 如何使用继承处理 JPA CollectionTable?

java - 这算是反射(reflection)吗?

Android 应用程序未知的新本地化

Android 蓝牙聊天示例 - 同步 onPause()

c# - 列出并连接到蓝牙设备