java.io.IOException:服务发现失败

2024-07-01

我正在开发一个 Android 应用程序,在两部配对的智能手机之间使用蓝牙连接。蓝牙逻辑基于著名的BluetoothChat SDK示例:管理服务器线程的“服务”类accept(), 一个客户端线程connect()和一个用于在套接字上读/写的线程。

一切正常,除非我关闭活动连接(从客户端或服务器端),然后所有连续尝试启动新连接都将失败并出现以下错误:

java.io.IOException: Service discovery failed

经过一番研究,我认为这是 UUID 的问题。我正在使用 BTChat 示例的 UUID (fa87c0d0-afac-11de-8a39-0800200c9a66),但问题仍然存在于另一个随机 UUID(它是31ef5990-dc20-11e2-a28f-0800200c9a66).

这是相关的客户端logcat。 (客户端connect()是什么失败了):

E/BluetoothService.cpp: stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session)
D/BluetoothService: Cleaning up failed UUID channel lookup: 30:17:C8:A7:C6:C3 fa87c0d0-afac-11de-8a39-0800200c9a66
        java.io.IOException: Service discovery failed

D-Bus 错误可能是由cancelDiscovery()Android 文档建议先调用connect()。我觉得failed UUID channel lookup是真正的问题,但我不知道如何解决这个问题。我应该使用另一个(众所周知的?)UUID 吗?

如果需要,我可以显示代码片段。然而这个问题在逻辑上与BluetoothChat 非常相似。


Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);

&

m = mAdapter.getClass().getMethod("listenUsingRfcommOn", new Class[] { int.class });
tmp = (BluetoothServerSocket) m.invoke(mAdapter, BLUETOOTH_CHANNEL);

嗯....我不是 BT 专家,但我知道我的代码可以使用反射在没有 UUID 的情况下工作。如果你想要干净的东西,我认为这不是一个好的解决方案,但我只知道,就我而言,它是有效的(在 2.3.6 上):)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.io.IOException:服务发现失败 的相关文章

  • 如何在IDLE中同时运行两个模块

    我正在开发一个超级简单的套接字程序 我有客户端代码和服务器代码 如何同时运行这两个 py 文件以查看它们是否有效 您可以同时运行 IDLE Python shell 的多个实例 因此 打开 IDLE 并运行服务器代码 然后再次打开 IDLE
  • Progruard 和 R8 已弃用 - Android Studio 3.6

    将 Android Studio 升级到 3 6 后 我收到了有关 Proguard 和 R8 的弃用警告 这是否意味着我们不应该在项目中使用混淆 或者在发布模式下构建时我们应该考虑另一个等效选项 选项 android enableR8 已
  • Android 上的 wifi 聊天

    Android 上可以使用 Wifi 聊天吗 我的要求是我的电脑与 wifi 适配器连接 并且我的 Android 设备有 wifi 我想将我的电脑转换为服务器 将 Android 设备转换为客户端并实现聊天 这可能吗 请帮帮我 显然这是可
  • 如何获取已发送短信的送达报告?

    In my Application我正在使用发送短信SMS Manager 要检查消息是否已发送 我正在使用Toast 代替Toast我想要得到SMS Delivery Report我正在尝试很多例子 但是 一个流程不显示递送报告 例如当我
  • 单击按钮通知时关闭状态栏

    单击通知按钮后如何关闭状态栏 I tried this https stackoverflow com a 15571784 1735077 但我有一个例外 java lang NoSuchMethodException collapse
  • 使用硬件键盘时 Android TabHost 选项卡会窃取焦点

    我目前有一个TabHost包含 4 个选项卡 在一些片段上我们有一些EditText布局内的视图 我们注意到 当您尝试输入任何内容时EditText使用硬件键盘的视图 焦点被窃取EditText并赋予当前活动选项卡TabHost 这只发生在
  • java.io.IOException:服务发现失败

    我正在开发一个 Android 应用程序 在两部配对的智能手机之间使用蓝牙连接 蓝牙逻辑基于著名的BluetoothChat SDK示例 管理服务器线程的 服务 类accept 一个客户端线程connect 和一个用于在套接字上读 写的线程
  • 从 android 将用户注册到 QuickBlox 用户

    我正在尝试在我的 Android 应用程序中使用 QuickBlox 我阅读了指南并导入了示例 一切正常 我更改了一些用户可以使用 EditText 作为用户名和另一个密码登录的内容 并且效果很好 但现在我想添加一个注册按钮 使用户能够注册
  • INSTALL_FAILED_MISSING_SHARED_LIBRARY 没有 google api

    好吧 我一直在浏览 但我最终得到的只是谷歌的 api 我没有在我的应用程序中使用任何来自谷歌的API 我正在编写一个使用 sqlite 浏览器的应用程序 但尚未使用任何其他参考 任何想法 我之前没有开始过这个应用程序 所以现在这是一个非常大
  • Android 定期运行任务

    我想在 android 活动中定期运行一个方法 该方法会在 x 秒后更新某个字段 我知道它可以在timerTask中完成 但是最好的方法是什么 代码示例会很有帮助 你应该使用Handler和它的postDelayed功能 您可以在这里找到示
  • UserRecoverableAuthException:NeedPermission

    我尝试按照教程进行操作 https developers google com android guides http auth https developers google com android guides http auth Co
  • 更改 Android 中的配对对话框外观

    我们有一个与 BLE 设备 我们也生产 配对的 Android 应用程序 但默认的 Android 配对对话框存在一些问题 问题是 我们的设备不需要访问联系人或通话记录 是否可以删除该选项 无论是否选中该框 配对和我们的功能都将起作用 但我
  • 如何使用带有对话框的数字选择器

    我想使用数字选择器来获取用户的折扣百分比 一旦用户输入销售价格 我希望出现一个对话框 询问折扣百分比 我找不到将数字选择器集成到对话框中的方法 我做了一个 NumberPicker 的小演示 这可能并不完美 但您可以使用和修改它 使用自定义
  • Android UserManager.isUserAGoat() 的正确用例?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 我正在查看 中引入的新 API安卓4 2 http en wikipedia org wiki Android version
  • 具有圆角和透明背景的 Android 自定义警报对话框

    我创建了一个带有圆角的自定义 AlertDialog 使用onDraw of LinearLayout如下 public class RoundedLinearLayout extends LinearLayout private Pain
  • 三星我的文件资源管理器:从指定文件夹中选取文件

    我使用以下代码打开三星的 我的文件 应用程序来选择文件 public void openFileBrowser Intent intent new Intent com sec android app myfiles PICK DATA t
  • 渲染期间引发异常:无法找到操作栏的布局

    刚才使用 Android Studio 时 我在编辑器中编辑 XML 文件 在预览和设计窗口中收到此错误 Exception raised during rendering Unable to find the layout for Act
  • commons-logging 定义的类与 Android Studio 更新后 Android 现在提供的类冲突

    我已经将 Android Studio 更新到版本 3 现在似乎无法编译我之前编译的项目而没有错误 错误信息如下 错误 错误 commons logging 定义了与以下内容冲突的类 Android 现在提供的类 解决方案包括寻找更新的 没
  • android 软键盘出现时会破坏布局

    这是一个布局
  • 在这种情况下是否违反了 Google Play 开发者政策? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想通过 Android 应用程序赚一些钱 但我面临一个大问题 Google 在 Google Play 上不支持我所在的国家 地区 适用

随机推荐

  • READ_UNCOMMITTED 与无事务?

    在事务外部执行 SQL 与在 READ UNCOMMITTED 隔离模式下执行 SQL 之间有什么区别 澄清 我试图理解两者之间的区别java sql Connection TRANSACTION NONE http download or
  • 使用 Google Places API 时 Flutter-Web 出现 XMLHttpRequest 错误(firebase 托管)

    在我的 Flutter Web 应用程序中 我尝试使用 flutter google places 包获取地址 我正在尝试简单的代码来获取自动完成地址字段 MyTextField 只是一个自定义的文本字段 final addressFiel
  • IE8固定标题,可滚动GridView

    我知道有人问过这个话题 但这些帖子都已经过时了 或者在 IE8 上不起作用 简而言之 我们基本上想要在 GridView 中对列标题进行 Excel 样式锁定 我见过几个解决方案 其中一个 jquery css setExpression
  • Webkit 浏览器在确定表格布局中的单元格宽度时不考虑填充:已修复

    我在申请时得到不同的结果table layout fixed到表格并在单元格上使用填充 IE 和 Firefox 似乎可以通过将单元格宽度和填充加在一起来正常工作 Chrome 和 Safari 仅使用单元格宽度 我看到该问题存在一个错误
  • Javascript:在文档中查找 URL

    如何在文档中查找 URL 即 www domain com 并将其放入锚点中 www domain com html Hey dude check out this link www google com and www yahoo com
  • 如何在运行时读取类型的元数据?

    我想编写一个程序来打印 Haskell 类型的一些元数据 尽管我知道这不是有效的代码 但其想法是这样的 data Person Person name String age Int metadata Type gt String metad
  • 实施黑名单的最有效方法

    我开发了一个 Ip 过滤器 并猜测我如何使用任何类型的 esque 数据结构开发一个非常高效且快速的黑名单过滤器 我想做的很简单 每个传入 传出连接我都必须检查被阻止的 IP 列表 IP是分散的 内存使用应该是线性的 不依赖于阻止列表的数量
  • json_array 中的教义搜索[重复]

    这个问题在这里已经有答案了 我试图在 Doctrine Symfony 3 中的 json 类型中进行基本搜索 我的字段声明如下 ORM Column name data type json array nullable true priv
  • 使用硬件键盘时 Android TabHost 选项卡会窃取焦点

    我目前有一个TabHost包含 4 个选项卡 在一些片段上我们有一些EditText布局内的视图 我们注意到 当您尝试输入任何内容时EditText使用硬件键盘的视图 焦点被窃取EditText并赋予当前活动选项卡TabHost 这只发生在
  • 如何生成唯一的DICOM UID?

    我正在研究 DICOM 门控 PET 数据 我想人为地创建一个包含门控数据的 DICOM 图像系列 我正在查询 SOPInstanceUID 的增量值 它标记每个阶段或门中的每个图像切片 这些对于门中的每个切片都有不同的值 并且在门之间递增
  • 谷歌地图如何将图像添加到InfoWindow中

    您好 我正在尝试将图像添加到谷歌地图信息窗口中 我的代码就像这样的脚本 var ContactUs function return main function to initiate the module init function var
  • 如何在 WinRT 中从 C++ 获取堆栈跟踪?

    我需要从 C 应用程序获取堆栈跟踪 并将其序列化为字符串 以便稍后解析 我在 Windows 上听说过的唯一 API 是 StackWalk64 它似乎不受支持 如何在 Windows 应用商店应用程序中从 C 获取堆栈跟踪 我能够调试复杂
  • 为什么 (false || null) 返回 null,而 (null || false) 返回 false?

    为什么false null返回与以下不同的结果null false 我可以安全地依靠吗return myVar false如果 myVar 是其中之一 则返回 falsenull or false but true否则 所有组合 false
  • 如何在Azure函数应用程序中调用函数后动态更改内容

    我正在使用 Visual Studio 2019 使用 Azure function v3 0 开发 Azure function 应用程序 我实现了一个时间触发的功能 我想更改内容 时间表 function json function j
  • 与选择顶部相反

    Transact SQL 有一个方便的SELECT TOP 4 whatever FROM 我想做一个 SELECT 查询 返回表中的最后 n 个条目 而不是第一个条目 这是我用来返回在表中输入的前四个项目的查询 使用 SELECT TOP
  • 不可能的? HTML 鼠标悬停边框颜色随边框折叠而变化?

    我希望有一个表格 其中所有边框 内部 外部 的宽度都是单个像素 我通过设置来实现这一点border collapse桌子上的风格 那么我希望onmouseover每个 TD 单元 改变border color为不同的颜色 如果表格边框尚未折
  • 无法获得正确的程序集过滤器来使用 TeamCity 8 和 dotCover 代码覆盖率

    我已经配置了一个 Nunit 测试运行程序构建步骤 该步骤成功运行我的测试套件 指向我的 Net 解决方案的测试子项目 例如 解决方案 Solution Test bin debug Solution Test dll 我的解决方案结构如下
  • 如何通过 CLI/Ruby 系统调用捆绑安装?

    是否可以通过 ruby 系统调用运行捆绑安装 我正在尝试安装 gems 并在另一个路径下运行项目测试 例如命令是 cd some other project bundle install gem list rspec spec 理想情况下
  • 如何获取与 PostgreSQL 中的视图或表关联的触发器

    我有一个要求 即我必须获取与给定表 视图关联的触发器列表 谁能帮我找到 PostgreSQL 中表的触发器 这将返回您想知道的所有详细信息 select from information schema triggers 或者如果您想对特定表
  • java.io.IOException:服务发现失败

    我正在开发一个 Android 应用程序 在两部配对的智能手机之间使用蓝牙连接 蓝牙逻辑基于著名的BluetoothChat SDK示例 管理服务器线程的 服务 类accept 一个客户端线程connect 和一个用于在套接字上读 写的线程