ndroid经点手机蓝牙无法连接安卓手机蓝牙无法配对mobcafedb的技术博客

学校寒假有个程序设计比赛,我也一直想要去写一个安卓模拟的蓝牙键盘,这样无论到哪里,比如班班通和没有键盘的电脑设备,有手机就可以操作它,也比USB方便一些。忙活了一个寒假,也走了不少歪路,终于整成了,下面分享一些经验。

在安卓API28后开放了BluetoothHidDevice类,主要就是用它来完成。首先是注册HID服务:

在发起连接上,我试了从电脑端发起连接、从手机端发起连接,而且使用的都是点进系统蓝牙列表的方式,均无法建立稳定连接。 后来看到大佬文章,解决了这个问题,即使用代理连接:

只要把mac地址改成所想要连接的蓝牙设备的mac即可。电脑可以采用cmd指令ipconfig /all,拉到最底即可;手机使用adb连接后,输入指令adb shell settings get secure bluetooth_address即可。当然也可以直接扫描,但我目前还未完成相关代码。

发送报告使用sendReport(),发送对应ID和字节的报告即可。

这玩意在安卓上适配都挺好,但Windows上会有一些问题。我自己找了一版描述符,目前是正常的(也是在GitHub上找的):

也确实尝试了很多版,这版可以。但需要注意其中的(byte) 0x85, (byte) 0x08, // REPORT_ID (Keyboard)反映了报告的ID = 8,需要和report中的相对应,如:

这里需要注意的一点是发送报告每一位的对应意义。如:

b1是修饰键的描述。需要注意的是如果只发送一个修饰键如shift来切换输入法中英文输入,只用在修饰键位添加字节即可,此时字母位置为0。 一个合理的根据输入的修饰键调整b1的值的代码如下。不在需要单独为修饰键创建映射集合:

在输入端也做了一些多键位输入、组合键识别的处理(使用的是JavaScript构建前端),大家可以参考参考,也可以去看我的仓库:

后来使用Wireshark对蓝牙抓包,发现安卓是这样的:

而Windows总是这样:

显示正在Pending,无法直接success;而且相同SCID的request最后会以PSM not support请求失败。HID-Control对应的PSM是0x0011。

在Windows开发文档上看到了以下:

若要接收来自特定 PSM 的任何远程设备的传入 L2CAP 连接请求,配置文件驱动程序应首先生成并发送 BRB_L2CA_REGISTER_标准版RVER 请求,并在请求的 _BRB_L2CA_REGISTER_标准版RVER 结构的 Psm 成员中指定 NULL,并在请求的 _BRB_L2CA_REGISTER_标准版RVER 结构的 Psm 成员中指定 NULL。 发送 BRB_L2CA_REGISTER_标准版RVER 请求时,配置文件驱动程序还必须向蓝牙驱动程序堆栈注册 L2CAP 回调函数。 这使蓝牙驱动程序堆栈能够通知配置文件驱动程序传入 L2CAP 连接请求。 然后,配置文件驱动程序应生成并发送BRB_REGISTER_PSM请求,以便蓝牙驱动程序堆栈将接受请求注册的 PSM 的连接。 否则,蓝牙驱动程序堆栈将拒绝具有未知(未注册)连接请求的所有连接请求。 有关 PSM 的详细信息,请参阅 _BRB_PSM 结构。

所以就感觉是不是驱动的问题。最后下载更新最新版的蓝牙驱动即可。注意更新完后要重启。 于是问题就解决了。抓包结果是,虽然也不是立刻success,但是最后依然请求成功。这估计是因为Windows多了以上的请求过程机制。

简介:蓝牙4.0分为标准蓝牙和低功耗蓝牙(BLE),标准蓝牙就是手机上用的那种,低功耗蓝牙由于其具有最大化的待机时间、快速连接和低峰值的发送和接收特性,被广泛用于智能手表、智能手环等可穿戴设备上。在安卓4.3之前,安卓平台上的BLE开发相当难搞,好在谷歌在4.3之后发布了官方的API。在安卓5.0之后又引入了新的API,原来的API已经被废弃。在新的系统里采用旧API开发的APP仍可使用,但采用新

已BLE HID为例,Android原生代码bta_hh_le_add_dev_bg_conn按照Spec描述,在加载配对记录后,对已配的BLE HID Device设备执行了Auto connection流程,代码内,会触发中心设备向BLE HID Device设备自动发起连接的情况包括如下三种:配对成功之后;车机蓝牙(中心设备)启动,加载配对记录之后;原因是connection timeout

一个典型蓝牙控制器的基本结构如图,右上角处理器处理上层协议,并通过ahb的总线接口将命令与数据配置到reg和sram中。生成的串行bit数据送入左下modem。左边的radio为蓝牙收发的模拟电路,接受link控制的配置。 以上结构中,除了跟cpu交互用到的bus interface, register,sram,还有另外很多模块,这里逐一解释一下功能。这里最核心的模块是mem con

设置蓝牙我们都知道,在手机的设置-蓝牙中,可以进行蓝牙设置的相关操作。其实可以不离开自己的APP,直接完成蓝牙设置的主要操作,可以结合自己的业务需求,相应地提示用户开启相关设置,提升用户体验。首先要知道,蓝牙连接需要知道待连接设备的MAC地址。已配对设备的MAC地址是已知的,只要对方开启了蓝牙并在连接范围内,就能连接成功。未配对设备则需要通过搜索才能知道MAC地址,知道MAC地址后如果直接请求和对

好吧,这是交易.我买了两部兼容蓝牙的Galaxy Nexus手机.我编写了一个蓝牙连接管理应用程序,用于设备发现和连接.它还输出设备可以支持的所有可用UUID.> 0x1116 – NAP> 0x112f – PBAP(电话簿访问配置文件)> 0x111f – HFP(免提)> 0x1105 – OPP(对象推送配置文件)> 0x1112 – HSP(耳机配置文件)&

安卓系统蓝牙配对流程分析 配对流程基本上始于首次连接一个蓝牙设备的过程中,本端的搜索流程结束获取到该设备的BluetoothDevice信息,就可以开启配对流程。配对,顾名思义就是将两个设备通过相关技术进行绑定,达到能够互相识别彼此的目的。因此通过蓝牙技术进行的配对就是大家理解中的蓝牙配对。随着蓝牙技术在消费市场上越来越普及,生活中很容易就能遇到蓝牙配对这一使用蓝牙功能事必不可缺失的步

今天记录一下前几天做的一个关于智能窗户APP的制作过程。这次制作是通过APP inventor来实现的下面是最原始的版本,虽然有点丑,但这都不是重点,以后有待改进。(1)APP初次打开的显示:如图所示,这一APP有获取蓝牙地址、连接蓝牙、开关灯、气泵的开关、智能模式的开关、湿度的显示等功能。图中程序的作用是:当初次打开APP程序,屏幕会出现提醒语“欢迎使用本软件”,然后使按键“连接”

原标题:技术丨如何解决蓝牙设备无法连接的问题?技术丨如何解决蓝牙设备无法连接的问题?在日常使用PC的过程中,偶尔会遇到蓝牙设备无法连接的情况,那么如何处理这样的问题呢?以下几个步骤来帮你解决。注意如果PC的现象是找不到蓝牙图标,或蓝牙图标显示异常(比如打红叉,惊叹号等现象)可以直接按照第三步解决方案来操作。1确认蓝牙设备是否可用蓝牙设备连接的问题,绝大多数会出在蓝牙设备端,因此首先需要解确认网络环

蓝牙协议栈:simplelink_cc2640r2_sdk_1_40_00_45IAR版本:IAR for ARM 8.11.3开发板:CC2640R2F蓝牙版本:BLE4.2配对模式:PasscodeEntry 密码输入模式主机端仅具有GAPBOND_IO_CAP_KEYBOARD_ONLY按键能力,从机端仅具有显示能力GAPBOND_IO_CAP_DISPLAY_ONLY。从机端:如果用手机做

蓝牙配对机制为了统一规范,蓝牙在2.1版本引入了安全简单的配对机制,从尔加强了蓝牙通讯安全方面性能。以下总结了蓝牙配对机制:一、遗留配对(Lagacy pairing){密码配对(PIN Code Pairing)} 仅适用于蓝牙v2.0及之前版本。每个设备必须输入PIN码(Personal identification number),且只有双方输入的PIN码相同时才会配对成功。任何16字节的U

蓝牙4.1,是一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。而这一切的目的,就是以兼容性和易用性为基础,在功耗和传输速率之间左右为难。1.蓝牙技术的概述1.1 两种蓝牙技术:经典蓝牙(检称 BT)和低功耗蓝牙(简称BLE) 蓝牙协议包括两种技术:经典蓝牙(简称BT)和低功耗蓝牙(简称BLE)。这两种技术,都包括搜索(discovery)管理、连接

1、什么是蓝牙Bluetooth是目前是使用的最广泛的无线通讯协议之一; 主要针对短距离设置通讯;5到10米 常用语连接耳机、鼠标和移动通讯设备等;与蓝牙相关的api: BluetoothAdapter:该类的对象代表了本地的蓝牙适配器;BluetoothAdapter的常用方法: isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回falsegetAddress()获取本

现在各种各样的数码设备在我们的生活当中几乎可以说是无处不在,平时我们使用的手机,IP,电脑等等这些都属于数码设备,那么这些数码设备当中会存在着很多的功能,当然在我们使用的过程当中自然也会出现说各种的问题,那么我们如何才能去解决这些问题以及使用好这些功能呢?这个时候就需要我们去了解这些功能及问题的解决方法,今天小编就来给大家分享下,关于索尼MDR-100ABN耳机怎么连接安卓手机方面的问题及功能的详

明年就要毕业了,所以最近开始刷面试题,碰到了一个问题“蓝牙自动配对怎么实现的?”,刚开始有点懵逼了。于是学习一波,记录下来。1 实现过程及原理  配对是建立连接的基础,任何从未配对过的设备(或曾经配对但其中一方已删除配对关系)都无法建立连接,因此配对无法绕过。配对的方式有输入pin码、输入密码、免输入的随机验证码等多种。当前XX设备与控制端的配对方式为免输入的随机验证码,两端确认6位数密码一致,点

在很多需要长期会话、来源可控、城市级定位的业务中(如电商监测、广告验证、本地化测试等),住宅IP的稳定性与地域精度往往比数量更重要。 下面总结一些企业在选型与使用静态住宅IP时的关键考量指标和经验。 一、核心指标 成功率(Success Rate) 稳定的网络请求成功率应在 99% 以上,可支 ...

通过事件和委托来实现银行的还款功能1.如果未到还款日期,则不会触发还款事件2.如果到了还款日期,钱不够,则会显示还差多少钱待还3.如果到了还款日期,钱够了,则会显示还剩多少钱储蓄卡类:基础的类,实现简单的用户和余额的定义class Saving_card{private int money;public string customer;public int Mon

本文将聚焦于跨境电商领域,介绍如何通过GEO优化提升品牌在全球市场的SEO排名,打破流量瓶颈。文章将分享多个跨境电商品牌的优化案例,探索如何利用GEO提升品牌曝光和用户流量,进一步推动全球电商业务的增长。

THE END
0.手机蓝牙连接不上是什么原因呢1. 蓝牙设备未开启:确保你的手机和蓝牙耳机或蓝牙音箱等设备都开启了蓝牙功能。 2. 蓝牙设备配对码错误:通常,蓝牙设备的配对码是“0000”或“1234”,请检查是否输入正确。 3. 蓝牙设备内存已满:如果蓝牙设备内存已满,可能导致无法建立新的连接。可以尝试清除蓝牙设备的配对记录,然后重新进行配对。 jvzquC41o0jeqj0eqs0djnmg1854>670jzn
1.车载蓝牙已配对却无法连接的原因是什么车载蓝牙已配对却无法连接,原因主要有以下这些。 蓝牙信号方面,有些蓝牙设备硬件协议落后,信号传输易受干扰且不稳定,被阻断就会无法连接。这时可检查手机和汽车的蓝牙设置,分别进入设置界面,打开音频选项,查看有无允许连接的设置并进行调整。 还要注意身边电子设备,有的设备使用后未关机,开机自动连接会导致串口错误,所以jvzquC41yy}/rlfwvq4dqv3ep1pyym4686<06?9844?20qyon
2.Win11电脑和手机蓝牙配对了却无法连接?已解决有很多朋友喜欢使用蓝牙这一功能,再加上现在的很多电脑基本上都支持连接蓝牙设备的,因此就会将电脑连接手机蓝牙进行使用,但是有用户却遇到了电脑和手机蓝牙配对了,但是无法连接的情况,针对这一情况,下面小编带来了解决方法,希望可以快速让你的电脑正常连接手机蓝牙。 解决方法如下: 1. 按【 Win + X 】组合键,或【右键】点击任务栏上jvzquC41yy}/zryqpi€iksnc0eun1sncqenfpp475:930qyon
3.Win11电脑和手机蓝牙配对了却无法连接?已解决小编最近遇到了一个奇怪的问题,就是我的Win11电脑和手机蓝牙配对了,但却无法连接。经过一番折腾,终于找到了解决方法。下面就和小编一起来看看吧! 一、所需工具: Win11电脑、手机、耐心和一点点幽默感。 二、解决方法: 首先,我们需要确保电脑和手机的蓝牙功能都已打开。 jvzquC41yy}/njtocqzbq7sgv1sptn4424:02:6:13888?3jvor
4.蓝牙鼠标已经配对,但显示在其他设备中,并且还是无法使用,怎么处理4. 将其他未使用的蓝牙设备(例如手机、平板等)与计算机断开连接,然后再次尝试连接鼠标。5. 如果以上jvzquC41cuq/|xq0eqs/ew4z13=5;98380nuou
5.win11电脑蓝牙已配对但连不上什么原因电脑升级win11系统经常连接使用各种蓝牙设备,常见的有蓝牙耳机、蓝牙键盘、蓝牙鼠标等等,在连接过程中,遇到蓝牙已配成功了但却无法连接,尝试几次还是一样,怎么办?小编整理两种解决方法,供大家参考学习。 方法一 1、首先我们在下方任务栏中点击搜索按钮,搜索并进入“设备管理器”。 jvzquC41o0nbqƒmwcpmkk7hqo1~ull4336>24@>50jznn
6.为什么win10蓝牙已配对但是连接不我们如果要在电脑中连接蓝牙设备的话,就需要配对成功才可以的,可是有不少win10系统用户却遇到蓝牙已配对但是连接不上的情况,导致蓝牙无法使用,这该怎么办呢,如果你刚好也遇到这样的问题,那就跟着小编来看看win10蓝牙已配对未连接的详细解决方法吧。 推荐:win7 64位专业版下载 jvzquC41yy}/jjt|jwgoisn0eqs0z}oe13:16@8230nuou
7.手机无法连接蓝牙设备的处理方式在“已配对设备”列表中,点击要删除设备右侧的“箭头按钮”,点击【取消配对】,并按此方法解除列表中所有设备的配对; 打开要连接蓝牙设备的开关,并将设备置于可被搜索的状态; 点击【搜索设备】; 点击搜索到的蓝牙设备,将会看到“正在配对”的提示,连接成功后将会显示“已连接”; (部分设备需输入配对码,可根 jvzq<84eu0ync{ykuct/exr1ygoykw4yz1gsvrhng1vbin4md877;;525
8.蓝牙耳机连不上手机,显示pin码或配对密钥不正确,没法配对?4、如果配对码输入正确,稍候即可在车载蓝牙上显示“已连接”;5、在车载蓝牙设置界面选择“自动连接”功能,此后如果手机与车载蓝牙都处于打开状态,且范围都在10米以内,就会实现自动连接【摘要】蓝牙耳机连不上汽车,显示pin码或配对密钥不正确,无法配对?【提问】你好,车载蓝牙连接不上的解决方法:1、把手机蓝牙和车载jvzquC41ycv/|xq0eqs/ew4cum5eg}fknue28<7;657`3@<5728`57mvon
9.win10蓝牙耳机配对成功但无法连接怎么办?Windows系列php小编西瓜分享如何解决win10蓝牙耳机配对成功但无法连接的问题。首先确保蓝牙耳机已充电且在连接范围内,尝试重启设备和蓝牙服务。检查设备驱动程序是否更新,还可以尝试在设备管理器中删除并重新安装蓝牙驱动程序。另外,清除设备的蓝牙配对列表,然后重新配对。如果问题仍未解决,可以尝试在服务中启用“bluetooth support servicejvzquC41o0vir7hp1hgr1@6242>/j}rn
10.这么多年了,为什么蓝牙连接还是不够稳定?例如,它的连接范围很短,你可能会遇到设备无法配对或重新连接的问题。可能出现的其他烦恼包括随机断开连接、中断或来自其他设备的干扰。从一个来源切换到另一个来源可能会被击中或错过,此外,由于蓝牙功能的不同实现,设备的行为也会有所不同。这就是蓝牙有这么多问题的原因,以及你可以做些什么来解决这些问题。jvzquC41uogsvqtog0wjcwokc0ipo8mvon532;6/2;525h8:53?50qyon
11.耳机无法与蓝牙设备配对打开耳机电源 按住“Power/Bluetooth(电源/蓝牙)”按钮 10 秒,直至听到“Bluetooth device list cleared.(蓝牙设备列表已清空。)” 从设备的蓝牙配对列表中移除您的耳机。您可以在 Bose Music 应用程序中选择“Settings(设置)” > “Bluetooth Connections(蓝牙连接)” > “Edit(编辑)”,完成此操作。然后点击您想移jvzquC41yy}/dxxg0et0|qdep1yvryttv1gsvrhng1nfcmujqpkt/wtv/rgjtrsi/vu.duzgvquuj6igxkif/qjcfrnppnx0jvsm
12.【问题解决】蓝牙显示已配对,无法连接,蓝牙设备显示在其他设备中。最开始,我发现逻辑鼠标无法连接蓝牙了,怎么都不行,重连,重新配对,全不行。于是尝试用逻辑鼠标内的usb接口进行解决,重连成功。 然而,在连接耳机的时候,发现耳机音频同样无法连接,经过复杂的配置后(各种关于设备控制器的调试),也只能连接上语音。 后来,发现网上有人说用驱动精灵重新安装驱动可以解决问题,遂下载,然而在jvzquC41dnuh0lxfp0tfv8|gkzooa=:637?3;8ftvkimg8igvcomu86566:99@=
13.手机无法连接蓝牙设备常见问题如果遇到手机无法配对/连接蓝牙设备的情况,您可按以下方案尝试处理: 确认蓝牙设备是否进入配对状态: 有些蓝牙设备不会自动进入配对模式。您可以查看蓝牙设备的说明书,按照步骤开启配对模式,然后再用手机进行连接。 重置蓝牙设备并重启手机: 您可以查看蓝牙设备的说明书,将蓝牙设备恢复到出厂设置,然后重启手机,再重新进行jvzquC41yy}/tnfnog4dqv4ep1yvryttv1qx1mte146:2<;:
14.罗技m720鼠标蓝牙配对教程用户在使用罗技m720鼠标的时候如果想要通过蓝牙进行配对连接,那么用户就需要先打开鼠标上的蓝牙开关,接着再使用电脑进行搜索最后连接。 罗技m720鼠标蓝牙配对教程 配对教程 1、首先用户需要按住Easy-Switch切换按钮三秒,这会将鼠标置于可发现模式,LED将快速闪烁。 jvzquC41kp4bnr7350tfv8~lle532;926174:@80jvsm