【问题标题】:getBluetoothService called with no BluetoothManagerCallback没有 BluetoothManagerCallback 调用 getBluetoothService
【发布时间】:2021-04-02 15:32:33
【问题描述】:

我在我的 Android 应用程序中经常收到 getBluetoothService() called with no BluetoothManagerCallback 错误。

我不知道是什么导致了这个或任何关于蓝牙管理器回调的事情。谁能给我一个关于可能导致此问题的原因或从哪里开始寻找的好主意。

【问题讨论】:

  • 请注意,这是一条非常愚蠢的信息。软件应该知道套接字是关闭还是读取超时,并且这两个条件并不相似。我怀疑“套接字已关闭”应该是“连接已被对等方关闭”。

标签: android bluetooth


【解决方案1】:

通过阅读 Android 源代码,这似乎是一个您无能为力的警告。源码显示,如果调用

BluetoothSocket#connect();

然后它会调用

BluetoothAdapter.getDefaultAdapter().getBluetoothService(null);

这里的关键,是它在上面一行中传递的空参数。因此,不会有回调,然后BluetoothSocket类会抛出警告。

由于这只是一个警告,我认为您无需对此采取任何措施。

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothSocket.java 第 306 行 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothAdapter.java 1610 行

【讨论】:

  • 我收到此错误无法解析方法 getBluetoothService(null)
  • 您不应该直接调用该方法。它是包私有的。使用公共的 Connect() 方法。
【解决方案2】:

这似乎是在同时打开多个蓝牙套接字时调用的。我通过确保一次只打开 1 个插槽来解决此问题。

【讨论】:

  • 你能澄清一下你是如何做到这一点的(只用文字)。我有一个“关闭所有打开的套接字”的函数,我在打开一个新套接字之前调用它。不过,这似乎并没有奏效。你做得怎么样?
  • 这个答案和政治家一样有用。
【解决方案3】:

即使在我的应用程序已关闭并且我无法以任何可能的方式摆脱它之后,我也会收到此错误。在这种情况开始发生后,我需要硬重启我的手机,因为我什至无法打开蓝牙。

现在(使用相同的代码)它只发生在我的一部手机上。也许这是驱动程序的问题。

【讨论】:

  • 在 android 4.2 中这是一个已知问题
  • 嗯,好的,tnx 的信息 :)
  • 还有一些使用 Broadcom 蓝牙堆栈的手机:/
【解决方案4】:

我在收到 BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED 状态为 BluetoothHeadset.STATE_CONNECTED 后直接尝试 BluetoothSocket.connect() 后收到此消息。 BluetoothSocket.connect() 也失败了。在尝试 BluetoothSocket.connect() 之前添加 500 毫秒的超时后,这解决了我实际连接的问题。消息“在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService()”仍然存在,但一切正常。

【讨论】:

    【解决方案5】:

    如果 BluetoothServerSocket 当前不接受具有您尝试连接的相同 UUID 的 [bluetoothServerSocket.accept()],也会出现这种情况。

    如果您确定接受服务器套接字,请仔细检查您是否没有提供太短的超时时间(我之前已将其设置为 200 以检查某些内容,哎呀)。

    【讨论】:

      【解决方案6】:

      在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService()

      我也面临同样的问题。但我解决了。 在我的情况下,已经有一个套接字处于打开状态,我正在尝试打开另一个套接字。因此,我们尝试作为客户端一次打开多个套接字。我觉得是这个原因

      【讨论】:

      猜你喜欢
      • 2014-09-20
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2013-11-06
      • 2014-11-28
      • 2013-08-11
      相关资源
      最近更新 更多