Android 配对蓝牙设备不显示应用配置文件

Posted

技术标签:

【中文标题】Android 配对蓝牙设备不显示应用配置文件【英文标题】:Android paired Bluetooth device not showing app profile 【发布时间】:2015-07-30 21:16:57 【问题描述】:

我不太熟悉 Android 蓝牙功能。我有开发和工作代码通过蓝牙通过我的应用程序连接两个 android 设备。现在的问题是。我的应用中有一个个人资料,例如用户个人资料。个人资料只有用户的姓名和照片。现在让我们举个例子。我有两个 android 设备,第一个设备安装了我的应用程序,配置文件名称为 John。第二台设备安装了我的应用程序,配置文件名称为 Lara。当我通过我的应用程序连接这两个设备时,如果 john 与 Lara 连接,我想在我的应用程序(john 的手机)中显示 John 与 Lara 连接。这意味着约翰应用程序显示了劳拉的个人资料。我有工作代码,通过编码连接两个蓝牙设备。但我仍然无法打开配对设备应用配置文件名称。过去两天我一直在寻找此功能的解决方案,但我仍然无法在我的应用程序中显示个人资料。 我知道这个问题不适合堆栈溢出。但你的回答对我帮助很大。

提前致谢。

【问题讨论】:

你的要求很酷,但实现起来太难了。 谢谢,我知道这很难。但我怎样才能获得这种类型的功能?有什么办法吗? 【参考方案1】:

我会使用来自this question 的答案,这将使您至少将一个字符串从一个设备发送到另一个。您正在寻找的答案太累了,但这是一个开始。我不会直接复制我链接到的答案,因为我认为你应该检查一下并投票如果它对你有帮助,但我会使用它的某些部分,这样你就可以看到这是否是你的正在寻找。

基本上,您在设备之间打开一个套接字。

BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
socket.connect();
//Creating objects to hold the output and input from the socket
outputStream = socket.getOutputStream();
inStream = socket.getInputStream();

然后您设置一个函数从一个设备写入另一个设备。

public void write(String s) throws IOException 
    outputStream.write(s.getBytes());

而且,要在其他设备上读取字符串,您需要使用字节缓冲区并将其转换为字符串。这就是你获取字节的方式。

bytes = inStream.read(buffer, bytes, BUFFER_SIZE - bytes);

【讨论】:

感谢您的精彩回复,我正在研究相同的编码结构。如果我成功了,我会在这里上传我的代码。再次感谢。

以上是关于Android 配对蓝牙设备不显示应用配置文件的主要内容,如果未能解决你的问题,请参考以下文章

Android设备怎么获取扫码枪扫描内容

Android 低功耗蓝牙 - 如何访问之前配对的设备?

配对蓝牙设备有优势吗?

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

如何将不需要pin的蓝牙设备与android配对

从 Android 中配对的蓝牙设备读取数据