This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/CC2650EM-5D-RD:基于 BLE 外设的简单自定义器件、无法连接到 Android 上的 Android 设备6.

Guru**** 2585275 points
Other Parts Discussed in Thread: CC2540

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/659082/rtos-cc2650em-5xd-rd-simple-ble-peripheral-based-custom-device-not-connecting-to-android-devices-above-android-6

器件型号:CC2650EM-5D-RD
主题中讨论的其他器件:CC2540

工具/软件:TI-RTOS

大家好

RTOS 2.13.0.06

Android 6.0.1

编译器 TI v.5.2.5

Xamarin 应用程序  

NRF Connect for mobile loaded Today /我认为版本不重要

BTOOL 1.41.05

CC2540 HCI 主机适配器、我也不知道该适配器的版本。

适用于 Android v3.8的简单链接入门套件

我有一个定制设备、已经使用了2年、而且通常可以在游泳。  它基于 SimpleBLEPeripheral Sample 项目。  它在 iOS 版 Xamarin 应用程序中工作正常。 它可以毫无问题地连接到 BTOOL。 它在5、1上工作正常

但我甚至无法让 Android 版本高于6.0的版本看到它。 Simple Link Starter 也看不到它、NRF Connect for Mobile 也看不到它。  它适用于所有形式的 iPhone 和 iPad 10.3及更高版本。

电话上的设备日志中有一些奇怪的错误、似乎指向扫描响应中的制造数据为零长度、但我不相信它们是根本原因。  是否有人可以帮助我指明解决此问题的方向?  

这个问题已经存在了相当一段时间、现在我只需要解决/弄清楚它。  因此、这不是最近推出的产品、它从未在 Android 6.0以上的设备上工作过。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BLE Stack 是2.01.01.44627
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 John:

    您是否修改了默认 SimpleBLEPeripheral 项目中的广播/扫描响应数据? 您提到"电话上的设备日志中有一些奇怪的错误、似乎指向扫描响应中的制造数据为零长度"。 您能对此进行澄清吗? 您指的是什么错误? 为什么您不相信这是根本问题?

    您可能还想尝试在 Android 开发人员论坛上询问其他用户是否遇到 Android 设备不显示广播数据的问题: developer.android.com/support.html
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主要是因为扫描响应不是零长度。 它使用扫描响应数据连接到 iOS。 我还会在 BTOOL 中看到有效的扫描响应。 我不熟悉数据包监听器、我想知道这是否对我有所帮助。 我没有进入 Android 论坛、因为它似乎不是 Android 问题。 其他 BLE 器件连接 fin、扫描也正常。 就像我的 Garmin 手表或我的 Samsung Gear 一样、这两款产品都可以通过简单的扫描仪看到。 日志中弹出一个错误、提示扫描响应类型241 Len:0的内容无效。 当我谷歌时,它会引导我 astray。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    由于使用 iOS 或 BTool 查看广播数据时不会遇到任何问题、这听起来可能是由 Android 设备引起的。 Android 论坛可能会对手机报告扫描响应长度为零的原因提出一些建议。 可能是 Android 设备查找的特定字段不存在。 您是否检查了您的广告数据和时间间隔是否符合 Android BLE 建议?

    如果问题与时序相关、数据包监听器可能会提供帮助。 您能否发送监听器捕获以显示您的设备广告?

    您还可以尝试将广播数据/扫描响应数据替换为来自不同示例应用的广播/扫描响应数据、以查看您是否获得不同的结果。 例如、以下是 Project Zero 扫描响应/广播数据:

    // GAP -扫描 RSP 数据(最大大小= 31字节)
    静态 uint8_t scanRspData[]=
    {
    //未提供扫描响应数据。
    0x00 //占位符以保持编译器运行愉快。
    };
    
    // GAP -广播数据(最大大小= 31字节,尽管
    这是//在进行广播时最好保持短接以节省功耗)
    静态 uint8_t advertData[]=
    {
    //标志; 这会将器
    
    
    件设置为使用有限的可发现//模式(一次广播30秒)或通用//可发现模式(无限期广播)、具体取决于//基于 default_discovery_mode 定义。
    0x02、//此数据
    的长度 GAP_ADTYPE_FLAGS、
    DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED、
    
    //完整名称
    13、
    GAP_ADTYPE_LOCAL_NAME_COMPLETE、
    "P"、"r"、"o"、 'j'、'e'、'c'、't'、'、 'z'、'e'、'r'、'o'
    
    、}; 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rachel、

    下面是一个数据包监听器文件、供您查看。  我认为您在解决特定于器件的问题方面进展顺利。  我有一个 Galaxy S5、可以通过 NRF Connect 看到该器件打开。  但我认为有两个问题。  您能否查看数据包监听器、看看是否发现任何问题。  打开我的器件即可轻松捕获、该器件开始广播 automatically.e2e.ti.com/.../BHPackerSniff.psd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rachel、
    您说得对、中央设备有部分故障。 我有一个 Galaxy S8、它无法看到器件、但 S5确实看到了。 因此、我将寻址更改为私有可解析、这就消除了 SimpleLink Starter 查看该地址的能力。 然后我在 Xamarin 发现了一些需要 TLC 的问题,主要是我如何扫描设备。 较新的器件似乎需要私有可解析寻址。

    iOS 正在查找我的服务、Android 正在查找设备名称。 看起来它现在在 Android 上工作。 遗憾的是、这是我现有设备的固件升级...