Android HCI日志分析案例2

2023-12-03 06:52
文章标签 分析 android 日志 案例 hci

本文主要是介绍Android HCI日志分析案例2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

案例1--蓝牙音箱电量用完后,配对一直失败,提示PIN码不正确

基于MTK平台,通过MTKLogger开启保存HCI日志

问题定位分析

Android日志查看logcat 搜索到关键log

01-20 10:07:55.403760   978  1075 V bt_stack: [VERBOSE2:btm_inq.cc(2032)] BDA 74:a3:4a:0f:e3:2b
01-20 10:07:55.403878   978  1075 V bt_stack: [VERBOSE2:btm_inq.cc(2035)] Inquire BDA 74:a3:4a:0f:e3:2b
01-20 10:07:55.403948   978  1075 V bt_stack: [VERBOSE1:btm_inq.cc(951)] BTM_InqDbRead: bd addr 74:a3:4a:0f:e3:2b
01-20 10:07:55.403981   978  1075 D bt_btm  : btm_find_dev_type - device_type = 1 addr_type = 0
01-20 10:07:55.404019   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete
01-20 10:07:55.404041   978  1075 D bt_btm  : btm_acl_resubmit_page
01-20 10:07:55.404081   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete PairState: GET_REM_NAME  RemName:   status: 19 State:0  p_dev_rec: 0x9ffc9000 
01-20 10:07:55.404137   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete() continue bonding sm4: 0x0000, status:0x13
01-20 10:07:55.404160   978  1075 I bt_btm  : btm_sec_change_pairing_state()  Old: GET_REM_NAME
01-20 10:07:55.404181   978  1075 I bt_btm  : btm_sec_change_pairing_state()  New: IDLE pairing_flags:0x1
01-20 10:07:55.404336   978  1075 V bt_stack: [VERBOSE1:btm_inq.cc(951)] BTM_InqDbRead: bd addr 74:a3:4a:0f:e3:2b
01-20 10:07:55.404381   978  1075 D bt_btm  : btm_find_dev_type - device_type = 1 addr_type = 0
01-20 10:07:55.404414   978  1075 D bt_btif : btif_transfer_context event 3, len 280
01-20 10:07:55.404527   978  1018 D bt_btif : btif task fetched event a001
01-20 10:07:55.404553   978  1018 D bt_btif : btif_context_switched
01-20 10:07:55.404574   978  1018 I bt_btif : btif_dm_upstreams_evt: ev: BTA_DM_AUTH_CMPL_EVT
01-20 10:07:55.404596   978  1018 D bt_btif : btif_dm_auth_cmpl_evt: bond state=1, success=0, key_present=0
01-20 10:07:55.404619   978  1018 D bt_btif :  btif_dm_auth_cmpl_evt() Authentication fail reason 19

关键日志

01-20 10:07:55.404081   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete PairState: GET_REM_NAME  RemName:   status: 19 State:0  p_dev_rec: 0x9ffc9000

01-20 10:07:55.404619   978  1018 D bt_btif :  btif_dm_auth_cmpl_evt() Authentication fail reason 19

HCI定位分析

根据这些信息,配对是链路层的行为,即在 HCI中搜索

进行搜索

一目了然,看到对端主动断开连接。

这篇关于Android HCI日志分析案例2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/448532

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插