连接到 AND UA651BLE 时出现状态为 133 的 Type_Gatt_Error

2024-02-01

我正在尝试连接到 AnD UA-651BLE 血压监测仪并获取 Android 应用程序中的值。该应用程序能够找到设备,但我在“onConnectionStateChange”中收到 Type_Gatt_Error。

这对于某些设备(如三星 Galaxy S5、Moto G4 等)工作正常,但不适用于某些手机(如红米 3s prime 等)。

这运作良好,当我取消设备配对并每次重新配对时,我都能够读取数据。我无法理解任何事情,因为我是 android-ble 集成的新手。我尝试将目标 SDK 版本更改为 21 和 23,因为我主要使用 android 5.0.1 及以上设备。但没有运气

我发现门户网站中许多人提出了类似的问题,但没有找到任何适合我的解决方案。

谁能让我明白为什么会发生这种情况以及可能的解决方案是什么?

以下是我在 Android studio 中得到的日志:

D/MYTAG:  DashBoard UnBonded Device false true
D/MYTAG:  Found device - =*******************A&D_UA-651BLE_459701
D/SN: RESU connectDevice device 6C:EC:EB:45:97:01
D/BluetoothManager: getConnectionState()
D/BluetoothManager: getConnectedDevices
W/SN: RESU Attempt to connect in state: 0
D/BluetoothGatt: connect() - device: 6C:EC:EB:45:97:01, auto: false
D/BluetoothGatt: registerApp()
D/BluetoothGatt: registerApp() - UUID=e7ed0993-f27a-4e2a-bc08-93b76d55a4d5
D/SN: RESU bluetoothGatt android.bluetooth.BluetoothGatt@47015f2
D/MYTAG:  CAlling connectDevice from Dashboard REPLY= true
D/BluetoothAdapter: stopLeScan()
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=10
D/BluetoothAdapter: STATE_ON
D/MYTAG:  DashBoard UnBonded Device true true
D/BluetoothGatt: onClientConnectionState() - status=133 clientIf=10 device=6C:EC:EB:45:97:01
D/SN: RESU Inside bluetoothGattCallback : onConnectionStateChange
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_ERROR
D/SN: RESU onConnectionStateChange()6C:EC:EB:45:97:01, A&D_UA-651BLE_459701, status=133 newState=0
D/SN:  MYTAG Disconnect Device
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_DISCONNECTED
D/BluetoothGatt: close()
D/BluetoothGatt: unregisterApp() - mClientIf=10
D/BluetoothGatt: cancelOpen() - device: 6C:EC:EB:45:97:01
D/MYTAG:  *********** CAlling startLeScan
D/BluetoothAdapter: startLeScan(): null
D/BluetoothAdapter: STATE_ON
D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=9
I/Choreographer: Skipped 60 frames!  The application may be doing too much work on its main thread.
D/MYTAG:  Found device - =*******************A&D_UA-651BLE_459701
D/SN: RESU connectDevice device 6C:EC:EB:45:97:01
D/BluetoothManager: getConnectionState()
D/BluetoothManager: getConnectedDevices
W/SN: RESU Attempt to connect in state: 0
D/BluetoothGatt: connect() - device: 6C:EC:EB:45:97:01, auto: false
D/BluetoothGatt: registerApp()
D/BluetoothGatt: registerApp() - UUID=c9f450d6-a78e-4190-8c8c-89ce7c5bcb17
D/SN: RESU bluetoothGatt android.bluetooth.BluetoothGatt@a2caac0
D/MYTAG:  CAlling connectDevice from Dashboard REPLY= true
D/BluetoothAdapter: stopLeScan()
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=10
D/BluetoothAdapter: STATE_ON
D/MYTAG:  DashBoard UnBonded Device true true
D/BluetoothGatt: onClientConnectionState() - status=133 clientIf=10 device=6C:EC:EB:45:97:01
D/SN: RESU Inside bluetoothGattCallback : onConnectionStateChange
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_ERROR
D/SN: RESU onConnectionStateChange()6C:EC:EB:45:97:01, A&D_UA-651BLE_459701, status=133 newState=0
D/SN:  MYTAG Disconnect Device
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_DISCONNECTED
D/BluetoothGatt: close()
D/BluetoothGatt: unregisterApp() - mClientIf=10
D/BluetoothGatt: cancelOpen() - device: 6C:EC:EB:45:97:01
D/MYTAG:  *********** CAlling startLeScan
D/BluetoothAdapter: startLeScan(): null
D/BluetoothAdapter: STATE_ON
D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=9
I/Choreographer: Skipped 60 frames!  The application may be doing too much work on its main thread.
D/MYTAG:  Found device - =*******************A&D_UA-651BLE_459701
D/SN: RESU connectDevice device 6C:EC:EB:45:97:01
D/BluetoothManager: getConnectionState()
D/BluetoothManager: getConnectedDevices
W/SN: RESU Attempt to connect in state: 0
D/BluetoothGatt: connect() - device: 6C:EC:EB:45:97:01, auto: false
D/BluetoothGatt: registerApp()
D/BluetoothGatt: registerApp() - UUID=04b0cc2e-ee24-4515-b41b-d93d1fb54aa3
D/SN: RESU bluetoothGatt android.bluetooth.BluetoothGatt@c659f3e
D/MYTAG:  CAlling connectDevice from Dashboard REPLY= true
D/BluetoothAdapter: stopLeScan()
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=10
D/BluetoothAdapter: STATE_ON
D/MYTAG:  DashBoard UnBonded Device true true
D/BluetoothGatt: onClientConnectionState() - status=133 clientIf=10 device=6C:EC:EB:45:97:01
D/SN: RESU Inside bluetoothGattCallback : onConnectionStateChange
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_ERROR
D/SN: RESU onConnectionStateChange()6C:EC:EB:45:97:01, A&D_UA-651BLE_459701, status=133 newState=0
D/SN:  MYTAG Disconnect Device
D/SN:  MYTAG DashBoard onReceive TYPE_GATT_DISCONNECTED
D/BluetoothGatt: close()
D/BluetoothGatt: unregisterApp() - mClientIf=10
D/BluetoothGatt: cancelOpen() - device: 6C:EC:EB:45:97:01
D/MYTAG:  *********** CAlling startLeScan
D/BluetoothAdapter: startLeScan(): null
D/BluetoothAdapter: STATE_ON
D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=9
I/Choreographer: Skipped 60 frames!  The application may be doing too much work on its main thread.
D/MYTAG:  Found device - =*******************Mi Band HRX
D/MYTAG:  DashBoard UnBonded Device false true
D/MYTAG:  Found device - =*******************null

对于 gatt 133 错误没有单一的答案。但过去我曾因以下原因收到过它们:

  • 另一个设备已连接到我尝试连接的 BLE 设备。

  • 环境噪音太大。如果您工作的地方有大量 2.4 GHz WiFi 路由器和其他 BLE 设备,它们会影响您与尝试通信的 BLE 设备之间的距离。我的办公室有数百台设备,因此如果我距离所连接的设备超过 3 英尺,我就会收到大量 133 设备。

  • 有时手机的 BLE 芯片似乎无法工作,重新启动即可解决问题。

  • 这是一个long不久前,有点模糊,但曾经有一段时间 iOS 设备可以连接到我们的 BLE 设备,但 Android 无法连接,并且当我们尝试连接时会收到 133 错误。我think这是因为 BLE 设备的广告标志没有LE General Discoverable Mode.

为了调试,我喜欢使用两个应用程序:

  • 浅蓝色 -

我认为这个应用程序正在使用Android平台的BLE库。因此,如果我的应用程序无法连接,我会仔细检查他们的应用程序是否也无法连接。如果可以,那么很可能是我的代码有问题。

  • nRF 连接 -https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp

我认为这个应用程序在比 Android BLE 库更低的级别上使用 BLE。有时我的应用程序和 LightBlue 得到 133,但 nRF Connect 可以成功连接。但如果它在大多数情况下确实以 133 失败,那是因为另一个设备已连接到 BLE 设备,或者它已损坏并需要重置。在上面第四个项目的情况下,该应用程序还能够连接到我们的 BLE 设备。

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

连接到 AND UA651BLE 时出现状态为 133 的 Type_Gatt_Error 的相关文章

  • Android 键盘调整大小

    我正在开发一个应用程序 其中包含 Activity 和Fragment 在片段布局中 我使用相对布局作为父布局 底部和滚动视图之间的一个按钮 Scrollview包含编辑文本框 如果我点击最后一个editTextBox在滚动视图中我的键盘隐
  • 为什么 BLE 4.2 比 BLE 4.1 更快

    我已阅读技术规范 并试图了解为什么 BLE 4 2 比 BLE 4 1 更快 我们能否发送大于 20 字节的数据包 或者连接间隔是否更快 我试图了解是什么让 BLE 4 2 更快 与早期相比 蓝牙 4 2 中唯一提供更高吞吐量的是链路层的长
  • ScrollView 与relativelayout 不能很好地配合

    所以我有一个 ScrollView 作为布局中的最高级别 在我的 ScrollView 中我有一个包含其他视图的相对布局 问题在于 RelativeLayout 没有按应有的方式覆盖整个布局 它会在大约一半的屏幕处被截断 它的宽度是屏幕的整
  • 如何在 Android 中使用 Espresso 设置文本视图的值

    我正在为片段编写测试用例 我可以将文本设置为 Edittext 但无法通过测试将文本设置为文本视图 请任何人帮助我解决这个问题 贝娄是我用于编辑文本的代码 onView withId R id editText perform typeTe
  • Android ViewPager手动调用PageTransformer TransformPage

    我有一个带有 PageTransformer 实现的 ViewPager 它可以对 ViewPager 的下一页执行一些有趣的操作 我的实现如下所示 class ZoomOutPageTransformer implements ViewP
  • Oreo (8.1) 无法在锁定屏幕上启动活动

    我正在开发 NFC 支付应用程序 即使设备锁定 屏幕打开时也可以付款 与 Android Pay 的行为基本相同 付款后 我想向用户显示胜利屏幕 通知他付款结果 完成 错误 PIN 请求等 我将其添加到清单中
  • Android 设备监视器未在 Mac 上的 android studio 中打开

    当我尝试在 android studio 中打开 android 设备监视器时 它显示以下错误 下面是我的日志文件 有人可以建议我解决方案吗 SESSION 2017 01 26 16 39 56 119 eclipse buildId u
  • Android:使用 ActivityResultLauncher 时如何区分多个意图

    我正在创建一个意图选择器来在手机相机应用程序和图库 文件管理器之间进行选择 Intent chooserIntent Intent createChooser clickPhoto Set Image Using chooserIntent
  • 将 JSON 解析为 ListView

    好吧 我已经查看了大量有关解析 JSON 结果的示例 但没有运气 我有下面的 JSON 示例 我现在不需要状态信息或地理位置 我只想使用 station 对象并从数组中选择一些内容以列表形式显示在我的 ListView 中 我不明白那里的任
  • 当选择edittext时,主题/样式不会改变

    我的注册表单中有 Edittext 当用户触摸编辑文本时 编辑文本框变为绿色 表示选择了编辑文本 我不希望这样 当用户选择任何编辑文本时 行吹编辑文本保持白色 请检查此图片以获取更多说明 https i stack imgur com sl
  • 将 Cordova console.log 写入文件

    有谁知道是否有可能console log写入文件或类似的东西 我已经记录了我的应用程序 但它仅写在控制台上 出于远程目的debugging我也需要将现有日志写入文件 我想创建一个文件并将日志写入该文件中 但这将使我复制现有的日志代码 因此
  • 尝试使用 FileProvider(Android) 获取 URI 时出现 NullPointerException [重复]

    这个问题在这里已经有答案了 我想在单击按钮后拍照 但我越来越NullPointerException当试图得到URI with FileProvider 这是我的错误代码 Caused by java lang NullPointerExc
  • Android中如何使用ScrollView?

    我有一个 XML 布局文件 但文本超出了屏幕尺寸 我需要做什么才能制作ScrollView
  • 在 Java 和 PHP 之间加密/解密字符串

    我使用 AES 加密来加密和解密服务器端的 php 和 Android 应用程序 作为客户端 之间的字符串 PHP 中的加密字符串为 HaxRKnMxT24kCJWUXaVvqDHahzurJQK sYA4lIHql U 在 Java 中是
  • 如何停止和重新启动 Android 仪器测试中的活动?

    我正在尝试编写一个停止的 Android 活动仪器测试 onPause then onStop 并重新启动当前活动 我试过 activity finish activity getActivity 但这似乎不能正常工作 测试的目的是断言表单
  • 我的应用程序未列出用于平板电脑

    我已将一个新应用程序上传到 play google com https play google com store apps details id development nk anguide https play google com s
  • unityLibrary:compileDebugJavaWithJavac

    所以当我单击 构建项目 时 它显示 零错误 但我仍然得到这个 Executing tasks clean unityLibrary assembleDebug launcher assembleDebug in project C User
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • 如何从停止的地方开始播放视频

    我正在使用 VideoView 来播放视频 如果我退出应用程序 在返回应用程序 即在 onResume 中 时 它应该从停止的位置播放视频 要获取当前进度 在 onPause 中检查 long progress mVideoView get
  • 在 Android 上使用 pocketsphinx 未检测到关键字

    谁能解释一下如何使用 pocketsphinx 将语音转换为文本 我试试这个 import com example speechtutor SpeechRecognizerRecorder import com example speech

随机推荐

  • 过滤涉及安全约束的请求

    我有一个 Java Web 应用程序 它使用安全约束来锁定对资源的访问 当 Ajax 请求需要身份验证时 我尝试操纵 HTTP 401 响应 因此我创建了一个过滤器来观察响应中的 HTTP 状态并根据需要进行相应修改 问题是 似乎如果需要身
  • 使用lambda表达式连接pyqt中的槽

    我正在尝试将插槽与 lambda 函数连接起来 但它没有按我预期的方式工作 在下面的代码中 我成功正确连接了前两个按钮 对于我循环连接的后两个 这是错误的 之前有人问过同样的问题 Qt 使用 lambda 将槽与参数连接 https sta
  • OrderedDict 不按顺序排列

    这个循环的想法是迭代列表 如果对象的某个属性不是 OrderedDict 的键 则会添加它 它是对象列表的字典 for object in someList if object DATE not in myOrderedDict myOrd
  • 使 Omni 能够在 Windows 上的 vim 7.2 上运行

    我正在尝试将 Omni Complete 功能与 gVim 7 2 一起使用 但在 Windows 上我不断收到一条错误消息 错误 需要使用 python 编译 vimE117 未知功能 pythoncomplete complete 看起
  • 如何确定变量的内存占用(大小)?

    PHP 或 PHP 扩展 中是否有函数可以找出给定变量使用了多少内存 sizeof只是告诉我元素 属性的数量 memory get usage有帮助的是它给了我所使用的内存大小whole脚本 有没有办法对单个变量执行此操作 请注意 这是在开
  • django 排除的性能问题

    我有一个 Django 1 8 应用程序 并且使用 MsSQL 数据库 以 pyodbc 作为数据库后端 使用 django pyodbc azure 模块 我有以下型号 class Branch models Model name mod
  • BroadcastReceiver如何启动新意图

    我实现了一个广播接收器 以便在互联网连接丢失时 阻止 我的应用程序 我所说的阻止是指应用程序必须打开 无互联网连接 活动 这是我的接收器代码 public class ConnectivityReceiver extends Broadca
  • Gradle:将所有测试依赖项复制到 zip 文件

    我对 gradle 很陌生 所以也许我问的问题很简单 我正在寻找一种解决方案 将 testCompile 范围内的所有依赖项放入 zip 文件中 我检查了http forums gradle org gradle topics how do
  • 如何在 JavaScript 中访问当前范围之外的变量?

    我正在用 javascript 编写一个应用程序 但无法弄清楚如何访问此 jquery 解析中函数中声明的变量 在内部我可以访问全局变量 但我真的不想为这些值创建全局变量 基本上我想从 xml 文档中提取文件名simulationFiles
  • chrome.identity.getAuthToken 不起作用

    我正在使用 Chrome Identity API 在我的 Chrome 扩展程序上为用户提供 Google 身份验证 我参考了Google官方教程 链接 Chrome 身份 API https developer chrome com a
  • BIRT 的 HTMLRenderReport 向嵌入图像添加类似“file://”的 url(而不是将它们嵌入到 HTML 中)

    我有一个 BIRT 报告 母版页中有一个图像 我的 BIRT 设计文件 我在报告中嵌入了一个 png 它在执行后生成了以下 XMLbody tag
  • JavaScript 中字符串的子类化

    我有一个字符串方法String prototype splitName 将作者姓名 字符串 拆分为名字和姓氏 该声明var name authorName splitname 返回一个对象字面量name with name first an
  • 回调 after_destroy 未通过 ActiveAdmin 触发

    我使用 ActiveAdmin 作为我的应用程序的后台 我有以下三个模型 class Organization has many organization collection relations has many collections
  • JTextField:文本太长时如何在 JTextField 左侧设置文本

    我有一个很长的String我想显示在JTextField 如果String太长了 它显示的是右侧部分String 而不是左边部分 即使我使用setHorizontalAlignment JTextField LEFT 例如 如果我的Stri
  • 发送后10秒使用JDA删除消息

    我正在制作一个不和谐的机器人 它发送一个嵌入来显示用户库存 我正在制作一个游戏机器人 为了避免混乱 我想在 10 20 秒后删除该消息 任何人都知道我该怎么做 如果你完全理解这些问题 那么请不要说 哦 你需要遵循等等格式 我正在使用 Jav
  • ISO-8859-1(正确/错误)

    这是真话还是假话 Unicode 是 ISO 8859 1 的超集 因此前 256 个 Unicode 字符对应于 ISO 8859 1 规范的编码 ISO 8859 1 仅包含 256 编码 也就是说 没有什么比 256 个代码更多的了
  • 如何从同一个类中的另一个运算符重载成员函数调用运算符重载成员函数(或使用运算符)?

    我正在用 C 编写一段代码来处理复数 我也在练习运算符重载 所以我超载了 乘法运算符 现在我想在我的重载中使用重载运算符 除法运算符 但是当我使用时 它的显示错误 这是代码 include
  • 为什么在初始化结构时出现段错误?

    找了一圈一小时 我想我最好在这里发布问题 我简化了代码 段错误在函数中initMyStruct include stdlib h typedef struct int arr1 int arr2 myStruct void allocMyS
  • 设置为[UIImage new]后恢复navigationBar背景图片

    我需要一个完全透明的地图视图导航栏 所以我这样做了 self navigationController navigationBar setBackgroundImage UIImage new forBarMetrics UIBarMetr
  • 连接到 AND UA651BLE 时出现状态为 133 的 Type_Gatt_Error

    我正在尝试连接到 AnD UA 651BLE 血压监测仪并获取 Android 应用程序中的值 该应用程序能够找到设备 但我在 onConnectionStateChange 中收到 Type Gatt Error 这对于某些设备 如三星