我正在尝试编写一个可以访问Zephyr HxM Smart心脏监护仪的蓝牙LE应用程序.此显示器有几种蓝牙服务,但我对电池服务,心率服务以及具有活动和峰值加速的自定义服务感兴趣.电池电平,(BAT),心率测量(HR)和自定义测量(CUS)各有一个特征. HxM每秒更新一次.

我正在使用Android 4.4的Galaxy S4进行此操作.

它没有按照文档的预期工作.

我最初的做法是:

Read BAT

Set notification for HR

Set notification for CUS.

然后等待回调.设置通知意味着呼叫

BluetoothGatt.setCharacteristicNotification(Characteristic char , boolean enabled)

(也可以对BAT进行通知,但是,规范并不要求支持它.但是,HxM确实支持它.)

这没用.我得到了人力资源的BAT和通知,但不是CUS.如果我取消了第二步,我收到了CUS的通知.我无法得到两者. (这表明我正在正确地阅读这些特征,因此[可能]不是问题.)

我发现一些迹象表明Android的蓝牙堆栈存在同步问题,但没有硬文档.然后我尝试了以下内容:

Read BAT.

Wait for the BAT reading, then set notification for HR,

Get HR, then disable notification for HR, and start notification for CUS.

Get CUS, then disable notification for CUS, and start notification for HR.

And continue to loop.

我得到了BAT,就是这样.

通过反复试验,我发现了以下工作:

Read BAT.

Wait for the BAT reading, then set notification for HR,

Get HR, then start notification for CUS.

Get CUS, then start notification for HR.

And continue to loop.

(与上面相同,但没有禁用通知.)通常,我得到一个HR读数,然后在200毫秒内得到CUS.可以假设它们来自同一更新. (数据中没有时间戳,必须保持简短为LE.)实际上逻辑更复杂,因为在没有预期读数的情况下需要定时器.这个逻辑更加复杂(和比我第一次尝试更容易出错,这就是文档似乎说的恰当.

我已经联系过Zephyr,他们说HxM Smart已经在Windows上进行了广泛测试,并且会同时进行通知.也有迹象表明它可以在iOS上运行.

还有一个我不明白的问题.要获取通知,您必须在本地启用“特征”以通知,例如:

BluetoothGattDescriptor descriptor = characteristic

.getDescriptor(UUID_CLIENT_CHARACTERISTIC_CONFIG);

resSet = descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);

resWrite = mBluetoothGatt.writeDescriptor(descriptor);

这是每个特征设置,并且只需要在首次接收特征时进行一次.相反,我发现每次设置通知时都必须这样做.这可能会导致事情有足够的时间延迟.我不知道.这种反复试验花费了我很多时间.最好有一个关于它是如何工作的明确陈述.

我应该注意,对于返回结果的所有调用,结果为true(成功).

我为这个冗长的声明道歉.我的问题是:

我找不到任何文档,我必须做所描述的事情.所有迹象都表明您设置了通知并等待回调.有文档,或者这是一个错误,还是一个糟糕的实现? (或者是我的错误?)我特别想知道我必须做的文件在哪里.

其次,还有一个复杂的问题.我试图调试例程,看看代码实际上在做什么.当我到达BluetoothGatt.class时,源代码行与调试堆栈的内容不匹配.因此我假设S4没有使用标准的Android.我不知道从哪里去.令人沮丧的是,虽然我有一些似乎有用的东西,但它很笨拙,几乎肯定不那么健壮.

谢谢你的帮助.

android蓝牙开启的通知,Android蓝牙LE通知的问题相关推荐

  1. android 自动开启调试模式,android user版本默认开启调试模式

    由于项目需要,需要发布版本默认开启调试模式,修改方式如下: 1.开启开发者模式 context.getSharedPreferences(DevelopmentSettings.PREF_FILE,C ...

  2. android中开启wifi,打开android系统设置,连接wifi

    打开android系统设置,连接wifi wifi信号强度:得到的值是一个0到-100的区间值,是一个int型数据,其中0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连 ...

  3. android中开启线程处理,Android线程与消息处理

    一.实现多线程 1.创建线程 (1)通过Thread创建线程 Thread thread = new Thread(new Runnable(){ @Override public void run( ...

  4. android 强制开启wifi,强制Android使用无网络的Wifi网络

    我正在构建一个需要通过无线网络进行通信的Android应用程序.问题在于,即使WiFi连接,当WiFi网络上没有连接互联网时,Android会选择使用蜂窝/移动数据. 我已经阅读了许多关于这个问题的帖 ...

  5. android手机自动化测试,appium自动化测试Android Demo

    1.启动appium上一篇介绍了iOS Demo,此片将开启Android Demo,依然是mac系统,以后会开启Windows系统的. Android Demo开启前,Android配置环境要配置好 ...

  6. android蓝牙开启后会尝试自动连接,Android 自动连接蓝牙

    蓝牙是手机和智能硬件通信常用的方式,蓝牙通信可分为传统蓝牙和低功耗蓝牙(BLE).其中BLE的连接断开等操作可以通过Android SDK中提供的API进行操作,而传统蓝牙部分SDK并没有提供相关的A ...

  7. Android 蓝牙启动流程(以及设置蓝牙为作为sink模式 接收端模式)

    本文以Android 7.1为基础 最近在做蓝牙开发,研究了一下蓝牙的启动流程,总结一下 Google在Android源码中推出了它和博通公司一起开发的BlueDroid以替代BlueZ.BlueZ的 ...

  8. android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)

    上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...

  9. Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发

    一.Android Bluetooth现状 在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针 ...

  10. android 蓝牙hf编程,基于Android蓝牙Inband ring功能实现.doc

    基于Android蓝牙Inband ring功能实现 基于Android蓝牙Inband ring功能实现 [摘要] 蓝牙作为一种短距无线数据与语音传输的开放性全球规范,目前在整个世界范围内都得到了很 ...

最新文章

  1. 浅谈分布式CAP定理
  2. 你能用微信小程序打开小程序了【附开发方法】
  3. MyEclipse中用Maven创建Web项目
  4. HDU4259(简单群置换)
  5. 设计模式09----门面设计模式
  6. 关于CSS中定位的个人理解
  7. 万亿“中植系”掌门人、毛阿敏丈夫离世,享年61岁,身家260亿
  8. 窗口大小改变时,显示内容的处理(正投影情况)
  9. Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证
  10. 多网卡Iptables端口转发
  11. java爬虫——JSoup
  12. scala--模式匹配
  13. 龙蜥操作系统 Anolis OS 8.6 - 来自阿里云的 CentOS 8 100% 兼容发行版
  14. Python验证码识别:利用pytesser识别简单图形
  15. OVM-V1.3正式发布,新增三大功能 ,采用全新UI界面
  16. ubuntu系统安装时的分区方案
  17. Exception in thread main java.sql.SQLException: Access denied for user ''@'localhost' (using passw
  18. 你是DDoS攻击的受害者吗?
  19. Day3—HTML个人简历制作及五彩导航练习
  20. ssl证书到期时间查询方法

热门文章

  1. QQ5.1 去广告显IP新春完美版【木子李作品】
  2. 计算机技术学硕国家线,关于工科国家线专硕学硕
  3. 修改PPT导出图片DPI值
  4. simplest_ffmpeg_streamer加注释版
  5. Unity 跑马灯效果
  6. 网络安全笔记-18-ICMP 协议
  7. 知识图谱笔记(小象学院课程)
  8. 工程经济作业1答案_2018年电大《工程经济与管理》阶段作业1及答案(网上作业).doc...
  9. linux上删除rime方案_安装linux中文输入法rime并配置
  10. Kotlin For循环详解