- 博客(91)
- 资源 (3)
- 收藏
- 关注
原创 蓝牙问题分析1-> 原生A2DP和AVRCP中存在的内存泄漏问题
最近写了一个疲劳此时的demo, 一直连接车机蓝牙,然后断开车机蓝牙, 发现测试一天后,蓝牙crash。
2025-02-11 11:27:18
39
原创 android 蓝牙如何修改IO capabilities 实现不显示 配对数字比较功能
蓝牙配对需要交换本机和目标机的IO功能,蓝牙的IO Capabilities定义如下:input功能:output 功能:将input功能和output能力整合到一起总共有6种组合方式:NoInputNoOutput 设备没有输入和输出的能力DisplayOnly 设置只有输出显示的能力NoInputNoOutput1 因为没有一个配对算法可以通过yes和no出入,而且设备不支持输出,所以设备的IO能力定义为没有输入和输出。
2025-02-11 09:29:20
27
原创 蓝牙BLE CCCD介绍
CCCD(Client Characteristic Configuration Descriptor)即客户端特性配置描述符,在蓝牙低功耗(BLE)技术中扮演着关键角色。
2025-01-27 14:45:43
159
原创 ubuntu 系统中bluez无法正常启动
确认 bluetooth.conf 已放置在/etc/dbus-1/system.d 目录下,启动 bluez 进程: bluetoothd。如果不是以 root 运行 bluetoothd,则需要添加相应 user 的 policy,和 root policy 类似,复制。则可能是 D-Bus 权限问题,可以在 /etc/dbus-1/system.d/bluetooth.conf 中添加。上面的内容,然后把第一行修改成
2023-06-13 14:07:07
1105
原创 苹果公司对蓝牙免提AT指令的扩充
苹果公司对蓝牙HF profile进行了一些HF AT指令的扩充。不过为了兼容起见,尽量实现HF标准规范规定的内容,如果标准规范没有规定相应的内容,为了适配苹果设备新增的功能,还是可以适应苹果公司新增的一些AT指令的。这里就对苹果公司新增的一部分AT指令作下介绍。本文这里提到的蓝牙配件指的是与苹果设备相连接的蓝牙外部设备。
2023-06-09 10:18:05
833
原创 串口流控(CTS/RTS)使用详解
对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS信号(高电平)(意思通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;从机在接收到主机发送的数据时,从机的接收模块的FIFO如果满了,则会使从机RTS无效,也即主机的CTS信号无效。在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。§ 如果主机CTS信号为有效(低),表示从机的接收FIFO未满,从机可以接收,此时主机可以向从机发送数据。
2023-06-05 10:13:14
3637
原创 如何将替换一款蓝牙/wifi 芯片到android
1. 在BPI-RockChip-Android11/device/rockchip/common/device.mk中增加。手动卸载驱动之后,再安装驱动,爆出了问题2, 证明驱动,或者是板子的配置还是有问题,无法识别到芯片。该问题,修改了device 下面,对应的overlay/ x/config.xml后得到了解决。4.2 再broadcom/wlan/bcmdhd/wifi_hal/common.h。3.在frameworks/opt/net/wifi/libwifi_hal。
2023-06-02 15:14:12
2301
原创 蓝牙IRK讲解
蓝牙IRK是保障安全的蓝牙协议中的一部分,用于在连接BLE设备时进行身份验证。它可以帮助确保连接设备的完整性、保密性和可靠性,提供更高的安全性并使许多IoT应用程序更加安全可靠。
2023-05-29 15:57:25
2483
原创 AppCompatActivity 实现透明效果 ---- sdk30 测试有效
<!--透明activity的style--> <style name="transparent_activity" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowBackground">@color/transparent_background</item> <item name="android:window...
2021-09-09 16:12:13
447
原创 系统编译踩坑记录
问题1.Cause: executing external native build for cmake 报错 尝试1. 通过./gradlew build --stacktrace 查看编译报错细节问题2.使用gradle进行编译打包产生 java.lang.OutOfMemoryError: GC overhead limit exceeded在gradle.properites文件中添加如下配置即可org.gradle.jvmargs=-Xmx4096m.........
2021-05-05 10:17:31
279
原创 应用优化记录
一. apk瘦身 主要涉及步骤1.图片变成webp, 大致能较少图片30% 空间2. 配置gradle, 只打包部分架构下的so 这个也会有5%左右的优化空间3. lint 删除无用的资源4. shrinkResource 这个属性 是神器, 一下子较少了20%空间5.简单图片尽量使用xml代替 png6.微信压缩开源框架使用这个框架之后, apk 体积变化媒体中心 8M -> 4.6M 优化体积为42%二. 日志优化1. 定义...
2020-08-31 16:12:06
138
原创 Android Studio 右边的 gradle 编译选项框不显示问题记录
右边的选项框不显示, 可以点击 file --> sync project with gradle files等待同步玩资源之后, 右边框的 gradle 编译选项框就会显示了就会显示.希望能帮到遇到这个问题的小伙伴
2020-08-19 16:12:58
2694
原创 android 车机电话的通讯录联系人搜索实现解析 ------- 填坑日记
项目中的android 车机系统 搜索联系人算法一直有问题 , 这里就把整个的流程写一遍一 .搜索算法实现的功能1.支持中文,英文搜索2.支持电话号码搜索3.支持汉语拼音搜索, 首字母搜索也能支持, 同时对检索到的文字显示高亮前面的第一, 第二点, 都是比较简单的, 通过遍历字符串, 查看字符串是否包含用户输入的字符, 就能达到检索的功能重点是第三点,拼音的搜索,首...
2019-08-09 18:00:25
1173
原创 Ubuntu 下面的切换 python 版本操作
archermind@archermind:~$ sudo update-alternatives --config python[sudo] password for archermind: There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path ...
2019-07-16 14:03:15
190
原创 蓝牙信道
1. BR/EDR (传统蓝牙)传统蓝牙和BLE 不一样的。没有广播信道和数据信道之分。数目是79 ,传统蓝牙是通过inquiry 和 inquiry scan 方式进行查找2. BLE37个数据信道, 3个广播信道3. 蓝牙5.0未知...
2019-07-08 17:50:50
5211
原创 蓝牙的配对过程1
好就没写blog 了, 最近看到了几篇关于蓝牙不错的文章, 这里转载, 并总结一下吧,地址如下: https://blog.51cto.com/11134889/2089794一般的蓝牙连接, 都会先设备配对, 然后再正式连接一. 配对1.1 概念配对就是master(主设备)和slave(从设备) 协商确定加密key的过程, 下面图中的第7部分即为配对这个图不知道...
2019-07-08 17:40:12
5022
转载 Linux 线程编程之二
多线程程序作为一种多任务、并发的工作方式,当然有以下的优点: 1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。 2) 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运...
2018-10-26 17:31:54
157
原创 安卓中蓝牙免提HFP的一些分析
最近看了一些大牛的博客,无不提到了技术分享的重要性,的确,分享自己的知识不仅仅是与他人讨论并相互提高的过程,更是对自己知识的梳理。希望自己能以此为契机,形成周期性博客分享的习惯。文章标题为HFP的一些分析,HFP(Hand Free Profile)主要定义了安卓中与接打电话相关的一些功能的实现。本文主要介绍这其中对于HFP非常重要的Service Level Connection的建立。首先...
2018-10-26 14:32:42
615
1
原创 android 蓝牙hfp client实现简介
首先确认配置文件是否开启hfp profile功能。根据设备的角色(hfp client / hfp server)来配置hfp profile.profile 配置文件路径:alps/packages/apps/Bluetooth/res/values/config.xmlalps/device/${customer}/${ProjectName}/overlay/packages/app...
2018-10-26 14:08:06
2819
1
转载 android HFPclient的相关分析
在高通平台和三星平台上调过这个功能,基于安卓6.0,该功能是将手机上的蓝牙功能用成和蓝牙耳机一样的功能。蓝牙电话和蓝牙音乐它们之间的差异较大,蓝牙电话要求实时性比较高,其和A2DP使用的物理通路并不一致,蓝牙电话走pcm物理通路,而蓝牙音乐走uart通路。关键词Hfpclient BT SCO ATA command在调试该功能时,最好能先测试一下,如下信号指标是否符合要求,以...
2018-10-26 11:45:44
2079
原创 典型的车载蓝牙配置
<resources> <!-- Disable source profiles (typically used in phone) --> <bool name="profile_supported_a2dp">false</bool> <bool name="profile_supported_hs_hfp"&am
2018-10-25 14:42:49
133
1
转载 android中xliff的使用
今天看了一个google的demo,发现部分资源字符串在/res/values/string.xml中包含有类似xliff的节点,刚才查了一下,Xliff是XML Localization Interchange File Format 的缩写,中文名为XML本地化数据交换格式。对于在Android的资源字符串中,可能会有类似下面的 %1$s 写法,这里,id我们可以随便定义,后面的%
2017-02-21 16:54:57
552
原创 Android layer type 小结
今天看源码。发现在手势识别开始前会存在LayerType 的设置 /** * The series of touch events has been detected as a swipe. * * Now that the gesture is a swipe, we will begin translating the view of the *
2017-02-17 11:18:27
3678
转载 Gson基础用法总结
目录 1、基本数据类型解析 2、基本数据类型生成 3、实体类的解析及生成 4、泛型在Gson中的使用 Gson,大家在都知道是json解析工具,也是google的亲儿子,自然也有着诸多的优点,今天就来总结一下其详细的用法,在本篇中将讲解其基础的使用方法,下一篇将讲解其高级的用法。1、基本数据类型解析,例:
2016-10-28 17:45:06
443
转载 Android OkHttp完全解析 是时候来了解OkHttp了
转载请标明出处: http://blog.youkuaiyun.com/lmj623565791/article/details/47911083; 本文出自:【张鸿洋的博客】一、概述最近在群里听到各种讨论okhttp的话题,可见okhttp的口碑相当好了。再加上Google貌似在6.0版本里面删除了HttpClient相关API,对于这个行为不做评价。为了更好的在应对网络访问,学
2016-10-08 20:33:06
375
转载 安卓中MVP模式和RxAndroid的具体实现例子
MVP模式和RxAndroid是两个东西,这里因为懒得分开写,所以写到了一起写到了同一个例子里面。MVP是什么参考博客:框架模式MVP在Android中的使用 在MVC框架中,View是可以直接读取Model模型中的数据的,Model模型数据发生改变是会通知View数据显示发生相应的改变。 而在MVP中Model和View之间的没有任何联系,是两个完全独立的模块,当
2016-10-02 11:07:44
631
原创 Android学习笔记 十六 使用RxBinding响应控件的异步事件
RxBinding是Rx中处理控件异步调用的方式, 也是由Square公司开发, Jake负责编写. 通过绑定组件, 异步获取事件, 并进行处理. 编码风格非常优雅. 让我来讲解一下如何使用, 本文含有代码示例.1. 依赖除了RxJava, 再添加RxBinding的依赖.// RxBinding compile 'com.jakewharton.rxbindi
2016-10-02 09:08:26
475
原创 andorid 学习笔记 UniversalImageLoader的使用
UniversalImageLoader问题:从网络获取图片、显示、回收,每个环节都可能造成应用的OOM(如果没做相关的处理的话)。像ListView或者是GridView中,一页就含有大量的图片,快速滑动的时候,没有OOM也会有卡顿的现象。解决办法:使用异步加载网络图片、缓存以及显示。ImageLoader的工作原理: 最后下载好图片,
2016-09-30 10:36:52
410
转载 Android6.0 ViewGroup/View 事件分发机制详解
之前自认为对于Android的事件分发机制还算比较了解,直到前一阵偶然跟人探讨该问题,才发现自己以前的理解有误,惭愧之余遂决定研习源码,彻底弄明白Android的事件分发机制,好了废话少说,直接开干。首先,我们对Android中的touch事件做一下总结,主要分为以下几类:1、Action_Down 用户手指触碰到屏幕的那一刻,会触发该事件;2、Action_Move 在触碰到屏
2016-09-26 15:43:05
374
原创 Android 系统中同时删除多条SMS的具体实现
昨天,遇到了一个同时删除多条记录的问题,在android系统中删除操作过慢导致了,导致用户体验不佳的现象。 该问题一直都没有很好的解决,现在将整体的解决方案记录一下。 一。AsyncQueryHander的具体实现 通过代码我们看到这里是通过一个AsyncQueryHander实现的删除操作,该handler的具体实现 public sta
2016-08-31 16:37:30
1464
原创 JAVA设计模式---策略(strategy)
转载自:http://blog.youkuaiyun.com/guolin_blog/article/details/8986285策略: 总结出来就是可以根据情况选择的意思,这篇文章用到的方法是借口。今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急着要去开会。要帮什么忙呢?你很好奇。他对你说,当前你们项目的数据库中有一张用户信息表,里面存放了很用户的数据,现在需要完
2016-08-25 11:22:54
293
1
原创 JAVA设计模式---单例模式(singleton)
1.首先看一个Java的简单版本的log类public class LogUtil { private static LogUtil sLogUtil; public final int DEGUB = 0; public final int INFO = 1; public final int ERROR = 2; public final int NOTHING = 3
2016-08-25 10:59:53
555
原创 Android BLE 开发常见问题总结
本文手机了 截止2016年8月笔者开发BLE以及网络上面的一些BLE开发经验,大家共同学习,共同进步。这段时间在做低功耗蓝牙 (BLE) 应用的开发(并不涉及蓝牙协议栈)。总体感觉 Android BLE 还是不太稳定,开发起来也是各种痛苦。这里记录一些杂项和开发中遇到的问题及其解决方法,避免大家踩坑。本文说的问题有些没有得到官方文档的验证,不过也有一些论坛帖子的支持,也可以算
2016-08-08 15:06:58
3289
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人