- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个 Android 应用程序,该应用程序在两台配对的智能手机之间使用蓝牙连接。蓝牙逻辑基于著名的 BluetoothChat SDK 示例:一个“服务”类管理服务器 accept()
线程、客户端 connect()
线程和一个线程用于在套接字上读/写。
一切正常,除非我关闭一个 Activity 连接(从客户端或服务器端),然后所有连续尝试启动新连接都将失败并出现此错误:
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 错误可能是由 Android 文档建议在 connect()
之前调用的 cancelDiscovery()
引起的。我认为 failed UUID channel lookup
才是真正的问题,但我不知道如何解决这个问题。我应该使用另一个(众所周知的?)UUID 吗?
如果需要,我可以展示代码 fragment 。然而这个问题在逻辑上与 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 上):)
关于android - java.io.IOException : Service discovery failed 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812222/
我刚刚去了 Bluemix,看到有一个名为 Discovery 的新实验服务。显然,它可以提取 PDF、Word 文档和 HTML 页面以及其他文件类型。 该服务与文档转换 (DC) 有何区别?以前,
我刚刚去了 Bluemix,看到有一个名为 Discovery 的新实验服务。显然,它可以提取 PDF、Word 文档和 HTML 页面以及其他文件类型。 该服务与文档转换 (DC) 有何区别?以前,
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。 已关闭8
我试图让 usart 在我的 stm32f0-discovery 上工作,但现在我发现关于这个的文档有点“缺乏”,所以有没有人有任何 usart 为 stm32f050 工作的例子? 谢谢。 巴特特尼
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
如果我能在我的项目中实现长按和短按按钮,它会派上用场。我正在使用 STM32F4 探索套件并在 C 中对其进行编程。我准备了一个引脚作为外部输入,我修改了中断处理程序。 架构: 我暂时将其设置为在下降
我让 Prometheus 在 AWS 上的 K8 中运行,并使用服务发现来获取有关我的基础设施的信息。 我已经能够使用服务发现来检索指标和节点的目标标签,但是我显示的是 0/17 个事件目标 pod
我让 Prometheus 在 AWS 上的 K8 中运行,并使用服务发现来获取有关我的基础设施的信息。 我已经能够使用服务发现来检索指标和节点的目标标签,但是我显示的是 0/17 个事件目标 pod
在 CloudFoundry 中,您可以通过在发现服务中注册其他微服务并按其名称查询它们来访问它们。但是您也可以设置一个路由(“子域”),您可以从中调用该服务,这似乎更容易处理。在这两种情况下都可以使
我是 Stack Exchange 社区的新手。我正在尝试在两个线程之间共享字符串的值。部分代码如下所示。 waveplayer.c 和 main.c 的内容均声明为线程。并且字符串buffer1需要
我是 Android 编程的新手。我想制作一个包含蓝牙发现功能的库(一个 JAR 文件)。 既然是库,里面的方法应该是顺序方法(启动蓝牙发现,等待一段时间,返回结果)。 我在下面做了一个代码,但它不起
我将 elastichsearch 部署到我的 AWS EKS 以进行日志记录,使用 stable/elasticsearch 图表,使用以下命令: helm install stable/elast
我最近购买了一个 STM32 Value line 探索套件,用于与 STM32 设备配合使用。我现在正在做一个需要看门狗的项目。在STM32中称为IWDG。但我的问题是当触发看门狗时我需要一个 IS
在下面的代码中,我可以看到定时器工作正常,因为 LED 一直在闪烁。但是 count 变量的值在第二个 while 内永远不会改变。 我不知道可能会出现什么问题? // count variable
在 IAR 编译器上开发 STM32L151xx。 我正在尝试获取 EXTI 中断但无处可去,这是我的代码,它基本上直接来自示例代码但无法正常工作, EXTI_InitTypeDef EXTI_I
我刚刚在 Apple 的网站上发现了 Widget Builder [ https://widgets.itunes.apple.com/builder/]我正在尝试在我雇主的网站上实现它。它基本上是
前言 在之前的 Laravel 版本中,安装包通常需要几个步骤,例如添加服务提供器到 app 配置文件并注册相关的 facades。现在,从 Laravel 5.5 开始,Laravel 可以自动
这个服务现在用到是非常少的,小编建议大家改为手动使用,这样当我们需要使用它的时候也能使用它,如果你电脑发现这个服务对应的svchost.exe进程使用的CPU非常,可以关闭它,但是不建议直接永久禁用
本文整理了Java中com.netflix.discovery.converters.XmlXStream类的一些代码示例,展示了XmlXStream类的具体用法。这些代码示例主要来源于Github/
本文整理了Java中org.openid4java.discovery.yadis.YadisResolver类的一些代码示例,展示了YadisResolver类的具体用法。这些代码示例主要来源于Gi
我是一名优秀的程序员,十分优秀!