Android蓝牙配对弹出框过程分析 Android蓝牙配对弹出框过程分析

Android蓝牙配对弹出框过程分析

根据远程蓝牙设备(remote devices)的要求,手机端发起与远程蓝牙设备Bluetooth remote Device的配对有两种情况

第一种:配对时需要pin码(pin request event)即有配对请求pairing request :所对应的action为 : BluetoothDevice.ACTION_PAIRING_REQUEST。

 根据远程设备所携带的type信息判断是否可以获取到pairingkey

     type值通过BluetoothDevice.EXTRA_PAIRING_VARIANT获取到

int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT,
                    BluetoothDevice.ERROR);

     pairingkey通过BluetoothDevice.EXTRA_PAIRING_KEY获取到

 int pairingKey = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY,
                        BluetoothDevice.ERROR);

如果type(int型数值)属于以下3种类型:

  • BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION(数值为2,远程设备为手机/scp860时为该类型),需要用户确认
  • BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY(数值为4),以前的一种配对方式,用在蓝牙2.1配对过程中,需要在本机(local device)输入显示在远程设备上的秘钥                passkey: enter the passkey displayed on remote device
  • BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN(数值为5),蓝牙2.0配对过程中,在本机输入显示在远程设备上的pin码:  enter the PIN displayed on remote device

则表示远程设备(remote device)本身携带有配对码pairingkey,可以通过BluetoothDevice.EXTRA_PAIRING_KEY获取到配对码

如果type不属于以上3种类型,则表示远程设备不会携带pairingkey配对码,必须要用户自己手动输入:The user will be prompted to enter a pin or an app will enter a pin for user

第二种:不需要pin码(create bond)没有配对请求(对应的设备有scp960,蓝牙耳机等),此时远程设备不需要鉴权,可以直接使用(just works)

所对应的action为:BluetoothDevice.ACTION_BOND_STATE_CHANGED 监听action的类为BluetoothPairingRequest.java,配对弹窗为BluetoothPairingDialog.java。字段信息存在于BluetoothDevice.java中

总结来说如果不以action为区分的话,配对分为三种情况

  • 直接配对连接不需要鉴权(just works):这种情况相当于手机发起配对时不需要请求远程设备,即不需要远程设备的认可
  • passkey/pin enter需要一方输入型:这种情况配对时会请求远程设备,然后远程设备会提供一个passk/pin码但不会通过代码的形式通知给用户,用户需要去查看远程设备显示的配对码并输入该pairingkey配对码(属于蓝牙2.0和2.1时的处理)
  • passkey/pin confirmmation无需输入密码只需确认型:这种情况配对时也会请求远程设备,远程会提供一个配对码并且通知给用户,此时代码中可以获取到pairingkey配对码,严格来说是用户需要查看远程设备上显示的配对码与当前手机上显示的配对码是否一致,进行比较(compare)确认后配对,所以属于确认型,对应于上述type的第一种类型

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯电脑管家的专栏

Petya 勒索软件新变种详细分析报告

据 twitter 爆料,乌克兰政府机构遭大规模攻击,其中乌克兰副总理的电脑均遭受攻击,目前腾讯电脑管家已经确认该病毒为 Petya 勒索病毒变种。

1990
来自专栏FreeBuf

TP-Link网络摄像机的多个漏洞详细分析

漏洞描述: 在TP-LinkTL-SC3171 IP Cameras网络摄像机的版本为LM.1.6.18P12_sign5的固件上发现多个漏洞,这些漏洞允许攻击...

2068
来自专栏Huramkin的归档库

在Telegram搭建一个订阅机器人

如何创建机器人自行搜索 这里我刚刚创建了个机器人@PushRss_Bot 获取到了Token 进入这个目录

8271
来自专栏FreeBuf

【推广】永恒之蓝WannaCry详细分析报

2017年5 月12 日晚上20 时左右,全球爆发大规模蠕虫勒索软件感染事件,仅仅几个小时内,该勒索软件已经攻击了99个国家近万台电脑。英国、美国、俄罗斯、德国...

2145
来自专栏一只程序汪的自我修养

一些有用的脚本

1341
来自专栏happyJared

Docker + anoyi-blog 打造专属个人简书

  anoyi-blog,一款有趣的开源个人博客建站工具,简单梳理下分享给大家。该工具基于 Docker, 可快速搭建和一键生成个人博客,用于实时解析简书文章、...

721
来自专栏黑白安全

黑客组织“隐匿者”技术升级再次暴力威胁入侵全网用户

区块链安全咨询公司 曲速未来 表示:"隐匿者"最早出现在2014年,此后一直从事入侵服务器或者个人主机的黑色产业,他们通过植入后门程序控制这些设备(肉鸡),然后...

2436
来自专栏web007

工行b2c

2.商户按照工行B2C支付1.0.0.11接口形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指...

2270
来自专栏FreeBuf

暗云Ⅲ BootKit 木马分析

概况 “暗云”系列木马自2015年初被腾讯反病毒实验室首次捕获并查杀,至今已有2年多。在这两年多时间里,该木马不断更新迭代,持续对抗升级。 从今年4月开始,该木...

6037
来自专栏云资讯小编的专栏

腾讯安全反病毒实验室解读“Wannacry”勒索软件

MS17-010 漏洞指的是,攻击者利用该漏洞,向用户机器的 445 端口发送精心设计的网络数据包文,实现远程代码执行。如果用户电脑开启防火墙,也会阻止电脑接收...

5620

扫码关注云+社区

领取腾讯云代金券