Android11 车载 Framework PBAP同步电话簿如何添加姓名全拼和首字母的需求

移动GIS开发:手机基站定位+离线切片地图(矢量vtpk+栅格tpk)导航安卓APP 目录 写在开头 正文 一、界面布局 二、功能实现 1.显示在线地图 2.基站信息的获取和显示 3.地理信息的获取和解析 4.显示栅格离线地图(.tpk) 5.显示矢量离线地图(.vtpk) 三、问题及解决方案 写在开头 这个APP的开发是我们这学期的一门课的期末大作业,要求主要有三点:显示栅格离线地图切片(.tpk),显示矢量离线地图切片(.vtpk),基于基站实现手机定位。 作为第一次接触安卓开发的小白,从Android Studio的安装到最终实现功能,这中间的每一步我都. 阅读详情

Android11 车载 Framework PBAP同步电话簿如何添加姓名全拼和首字母的需求

原理分析

PBAP同步电话簿功能是

  1. 首先车机通过蓝牙连接手机。
  2. 车机会通过蓝牙建立的连接。
  3. 下载手机中的联系人到车机中的数据库去。
  4. 然后再由车机的蓝牙电话App查询数据库来显示电话。

蓝牙下载联系人.drawio.png

这里只是大概介绍一下流程。详细的过程这里就不详细讲解了

数据库添加全拼和首字母这个需求,是在ContactsProvider这个app中修改 ContactsProvider保存联系人的App 好的 首先我们下载一下联系人的数据库 用如下的方法

  • adb root
  • adb remount
  • adb pull /data/data/com.android.providers.contacts/databases/contacts2.db

打开数据库经过我长时间的分析,数据库中view_data视图中,sort_key字段,如果联系人名字是英文是有值的(值为英文名称),但是中文就没有值, phonebook_label也是英文就是首字母,中文同样没有值,这样我们确定了sort_key和phonebook_label是全拼和首字母,我们就可以写代码了 所以我们写入数据库的时候 中文给 sort_key和phonebook_label赋值就可以。

好了找代码的过程我就不讲了,很长的时间我找到了关键代码,是在

packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsDatabaseHelper.java

在方法 
public void updateRawContactDisplayName(SQLiteDatabase db, long rawContactId) {

//displayNamePrimary  这个是联系人的名称 是用来做中文转英文的
bindString(rawContactDisplayNameUpdate, 2, displayNamePrimary);
......
//sortKeyPrimary  这个就是存储的名称全拼
bindString(rawContactDisplayNameUpdate, 6, sortKeyPrimary);
....
//phonebookLabelPrimary  这个存储的是名称首字母
bindString(rawContactDisplayNameUpdate, 7, phonebookLabelPrimary);
......................
} 

实现过程

代码位于packages/providers/ContactsProvider

  • 下载中文转英文的库,tinypinyin,需要两个库 ahocorasick-0.3.0.jar和tinypinyin-2.0.3.jar

  • 把这个两个库放到ContactsProvider目录下的libs文件夹下(如果没有请新建libs目录)

1.jpg

  • Android.bp文件增加如下代码:
java_import {
    name: "tinypinyin-2.0.3",
    jars: ["libs/tinypinyin-2.0.3.jar","libs/ahocorasick-0.3.0.jar"],
}


android_app {
    ...............
    static_libs: [
        "android-common",
        "com.android.vcard",
        "guava",
        "tinypinyin-2.0.3"
    ],
............. 

完整Android.bp代码如下:

Android.bp

java_import {
    name: "tinypinyin-2.0.3",
    jars: ["libs/tinypinyin-2.0.3.jar","libs/ahocorasick-0.3.0.jar"],
}


android_app {
    name: "ContactsProvider",
    // Only compile source java files in this apk.
    srcs: [
        "src/**/*.java",
        "src/com/android/providers/contacts/EventLogTags.logtags",
    ],
    libs: [
        "ext"
    ],
    static_libs: [
        "android-common",
        "com.android.vcard",
        "guava",
        "tinypinyin-2.0.3"
    ],

    // The Jacoco tool analyzes code coverage when running unit tests on the
    // application. This configuration line selects which packages will be analyzed,
    // leaving out code which is tested by other means (e.g. static libraries) that
    // would dilute the coverage results. These options do not affect regular
    // production builds.
    jacoco: {
        include_filter: ["com.android.providers.contacts.*"],
    },
    platform_apis: true,
    certificate: "shared",
    privileged: true,
    optimize: {
        proguard_flags_files: ["proguard.flags"],
    },
} 

然后修改packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsDatabaseHelper.java中代码

//在ContactsDatabaseHelper.java中增加如下方法
ContactsDatabaseHelper.java

private void initPinyinConfig(){
    // 添加自定义词典 因为库会把张转换成Chang 多音字 所以修改一下
    Pinyin.init(Pinyin.newConfig()
            .with(new PinyinMapDict() {
                @Override
                public Map<String, String[]> mapping() {
                    HashMap<String, String[]> map = new HashMap<String, String[]>();
                    map.put("长", new String[]{"CHANG"});
                    map.put("张", new String[]{"ZHANG"});
                    map.put("重", new String[]{"CHONG"});

                    return map;
                }
            }));
}

//构造方法调用一下
protected ContactsDatabaseHelper(
        Context context, String databaseName, boolean optimizationEnabled,
        boolean isTestInstance) {
    ........................
    initPinyinConfig();
}

//然后在方法updateRawContactDisplayName实现该功能
public void updateRawContactDisplayName(SQLiteDatabase db, long rawContactId) {
.......................

//添加全拼和首字母start
//全拼
String fullpinyin = Pinyin.toPinyin(displayNamePrimary, "");
if (TextUtils.isEmpty(fullpinyin)) {
    fullpinyin = "";
}else{
    //由于英文转换后是小写 中文转换后为大写 为了保持一直 这里全部转大写
    fullpinyin=fullpinyin.toUpperCase();
}
sortKeyPrimary=fullpinyin;
//首字母
String firstPinyin = "";
if (fullpinyin.length() > 0) {
    firstPinyin = fullpinyin.substring(0, 1);
}
phonebookLabelPrimary = firstPinyin;
//添加全拼和首字母联系人end

//下面的代码是源码本身的不用修改,记得这个位置
final SQLiteStatement rawContactDisplayNameUpdate = db.compileStatement(
            "UPDATE " + Tables.RAW_CONTACTS +
            " SET " +
                    RawContacts.DISPLAY_NAME_SOURCE + "=?," +
                    RawContacts.DISPLAY_NAME_PRIMARY + "=?," +
                    RawContacts.DISPLAY_NAME_ALTERNATIVE + "=?," +
                    RawContacts.PHONETIC_NAME + "=?," +
                    RawContacts.PHONETIC_NAME_STYLE + "=?," +
                    RawContacts.SORT_KEY_PRIMARY + "=?," +
                    RawContactsColumns.PHONEBOOK_LABEL_PRIMARY + "=?," +
                    RawContactsColumns.PHONEBOOK_BUCKET_PRIMARY + "=?," +
                    RawContacts.SORT_KEY_ALTERNATIVE + "=?," +
                    RawContactsColumns.PHONEBOOK_LABEL_ALTERNATIVE + "=?," +
                    RawContactsColumns.PHONEBOOK_BUCKET_ALTERNATIVE + "=?" +
            " WHERE " + RawContacts._ID + "=?");

rawContactDisplayNameUpdate.bindLong(1, bestDisplayNameSource);
bindString(rawContactDisplayNameUpdate, 2, displayNamePrimary);
bindString(rawContactDisplayNameUpdate, 3, displayNameAlternative);
bindString(rawContactDisplayNameUpdate, 4, bestPhoneticName);
rawContactDisplayNameUpdate.bindLong(5, bestPhoneticNameStyle);
bindString(rawContactDisplayNameUpdate, 6, sortKeyPrimary);
bindString(rawContactDisplayNameUpdate, 7, phonebookLabelPrimary);
................................

}

记得引入包名
import java.util.List;
import java.util.ArrayList;
import com.github.promeg.pinyinhelper.Pinyin;
import com.github.promeg.pinyinhelper.PinyinMapDict;
import java.util.HashMap;
import java.util.Map; 

然后使用mm编译后 找到这个编译出来的ContactsProvider.apk 通过

  • adb root
  • adb remount
  • adb push ContactsProvider.apk /system/priv-app/ContactsProvider/ContactsProvider.apk
  • adb reboot

这样就生效了

文末

要想成为架构师,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

一、架构师筑基必备技能

1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……

在这里插入图片描述

二、Android百大框架源码解析

1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程

在这里插入图片描述

三、Android性能优化实战解析

  • 腾讯Bugly:对字符串匹配算法的一点理解
  • 爱奇艺:安卓APP崩溃捕获方案——xCrash
  • 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
  • 百度APP技术:Android H5首屏优化实践
  • 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  • 携程:从智行 Android 项目看组件化架构实践
  • 网易新闻构建优化:如何让你的构建速度“势如闪电”?
  • …

在这里插入图片描述

四、高级kotlin强化实战

1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》

  • 从一个膜拜大神的 Demo 开始

  • Kotlin 写 Gradle 脚本是一种什么体验?

  • Kotlin 编程的三重境界

  • Kotlin 高阶函数

  • Kotlin 泛型

  • Kotlin 扩展

  • Kotlin 委托

  • 协程“不为人知”的调试技巧

  • 图解协程:suspend

在这里插入图片描述

五、Android高级UI开源框架进阶解密

1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel 使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
在这里插入图片描述

六、NDK模块开发

1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习

在这里插入图片描述

七、Flutter技术进阶

1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)
…
在这里插入图片描述

八、微信小程序开发

1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……

在这里插入图片描述

全套视频资料:

一、面试合集
在这里插入图片描述
二、源码解析合集

在这里插入图片描述
三、开源框架合集

在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接点击文末优快云官方认证微信卡片免费领取【保证100%免费】↓↓↓
在这里插入图片描述

Unity移动平台相关(一)Android打包设置 可以在此设置自定义编译标志。再使用一些第三方内容时有时会在此处添加脚本符号比如:Lua热更相关、FairyGUI相关该清单文件是一个xml文件我们可以在此决定一些应用程序启动之前的外观和行为。(比如:图标、名称、安装位置等等)Gradle 是一个构建系统,可自动执行许多构建过程并防止许多常见的构建错误。Unity将Gradle用于所有Android版本。 阅读详情

相关推荐

安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程

哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=1 Android 逆向工程师系统培训‹第九期›( 课程目录 ):https://ke.yijincc.com/course-21.htm 安卓逆向工程师:https://ke.yijincc.com/profession/1.htm 打造年轻人的...

墨鱼菜鸡 2792

手把手做安卓应用开发

安豆是一个想学Android应用开发的小白,于是它找到自己的邻居-程序员大牛-熊哥帮忙。熊哥手把手带着安豆搭建程序的开发环境,实现应用的功能,美化应用界面,让安豆终于开发出了自己的第一个安卓应用-计算器。学习的过程中,两个伙伴有问有答,学习的过程生动有趣。你一定不会睡着。

Android 蓝牙 PBAP obex协议详解 - 史上最全

android-蓝牙A2dp-avrcp-hfp-opp-配对流程-ble-rfcomm源码流程 Android 蓝牙 pbap obex rfcomm拉取联系人协议源码分析大全 - 点击下载 一、 PBAP简介 PBAP:Phone Book Access Profile的简称,电话本访问协议,是一种基于OBEX的上层协议,该协议可以同步手机这些具有电话本功能的设备上的通讯录和通话记录等信息。 角色定义: PSE:Phone Book Server Equipment,拥有电话本源数据的设备,作.

手机-手表蓝牙开发工程师的博客 4293

蓝牙电话之PBAP-优化通话记录的同步

优化通话记录的同步流程 PBAP同步的通讯录一般包含联系人 + 通话记录,今天我们就来简单聊聊同步通话记录时的相关优化。 通话记录分为 未接来电、呼入、呼出 这三种类型,每种类型的数据在手机端的存储路径如下图所示: 需要哪种类型的通话记录就使用对应的路径名,因此安卓源码中PBAP的PCE端在pbap连接成功后自动依次同步这三种类型的通话记录 然而实际项目中只是要求同步前N条通话记录过来就行,那这N条通话记录该怎么分配呢?如果每种类型分配 N/3 去同步的话会存在如下两个问题: 在手机上排在前N条之

坏小子-无线通信技术 4028

Android 蓝牙——PBAP协议(十)

SDK路径:frameworks/base/core/java/android/bluetooth/服务路径:packages/apps/Bluetooth/src/com/android/bluetooth/在使用协议类的时候无法找到该类,由于安卓源码中关于蓝牙协议的 Client 部分或相关接口都被 @hide 给隐藏掉了,这样 android.jar 满足不了安卓源码 framework 层开发人员的需求,可以使用反射机制或者引用 framework.jar 代替 android.jar。

小旭的专栏 3301

tinypinyin-2.0.3.jar

汉字转换拼音的工具包,Pinyin.toPinyin('') 1、生成的拼音不包含声调和方言,均为大写; 2、支持自定义词典; 3、执行效率很高(Pinyin4J 的 4~16 倍); 4、很低的内存占用(不添加词典时小于 30KB)

maven将jar包打包到本地

DartifactId:表示的是jar的名称。-Dpackaging:表示的是打包之后的格式。-Dversion:表示的是对应的版本号。-Dfile:指的是当前jar包的路径。-DgroupId:坐标路径。

weixin_44023129的博客 643

安卓手机移动开发android studio 课程设计 星座APP

系统主要分为四个大界面:星座、缘、运势和我的。 星座:一共包含十二个星座(白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔羯座、水瓶座、双鱼座等),点开每个界面都会有这个星座的主要介绍,包括:星座月份、性格特点、掌管宫位、显阴阳性、最大特征、主管星球、幸运颜色、搭配珠宝、幸运号码、相配金属、星座解析等。 缘:这个界面主要是进行星座配对分析,男生女生可以选择星座然后来进行配对分析,配对详情包含:配对评分、星座比重、解析、注意事项等。 运势:这个界面蕴含了十二个星座的图片,点开每个图片,会对这个星座的今年的运势进行分析,包含:综合运势、爱情运势、事业学业、健康运势、财富运势等。 我的:包含选择星座的图片、关于应用、功能介绍、更新日志和问题反馈等。

android汉字排序,Android联系人排序字段汉字问题

以前读取联系人,按名字排序的字段是下面这个样子ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY后来在6.0的手机上,读取的sort key,竟然是name的copy,比如读一个叫王二的联系人,正常的sort key 应该是“wang er”或者“W”,但6.0的系统读取出来还是"王二"最后经过一番折腾发现应该这样写if(android....

weixin_39631370的博客 209

PBAP协议整理

PBAP(The Phone Book Access Profile) , 电话簿访问协议

android tinypinyin-2.0.3.jar

android tinypinyin-2.0.3.jar

移动设备软件开发-1

了解安卓的基本知识和预先提出安卓的基本概念,以及安卓的四大部件,学习安卓环境的搭建

简单点的博客 2121

RADIOML 2018.01A数据集在自动调制识别中的实战应用指南

本文提供了RADIOML 2018.01A数据集在自动调制识别(AMR)任务中的完整实战指南。内容涵盖从数据集介绍、数据获取与解包、高效预处理流程,到构建PyTorch数据管道、模型设计(如1D CNN、ResNet)以及训练调参策略。重点阐述了如何利用该数据集训练鲁棒的AI模型,以应对复杂信道环境和低信噪比挑战,并给出了详细的性能评估方法。

plant的博客 173

Android应用案例开发大全 吴亚峰 苏亚光

http://book.51cto.com/art/201111/303600.htm点击打开链接

a1215445590的专栏 2248

C#创建COM组件,QT调用COM组件简单测试(VS2008+QT4.6.4)

一. C#创建组件: 1. VS2008新建一个项目,选择Visual C#, Class library 修改Properties下面的AssemblyInfo.cs文件,ComVisible属性设置为True,即:[assembly: ComVisible(true)] 2. 右击项目,选择“属性”, 选择“生成”选项卡,把“为COM互操作注册”勾选上 选择“签名”选项卡,把“

3517

交换机基本介绍(分类、性能指标、硬件构成及工作方式)

一、交换机的分类与性能指标 1.1交换机的分类 按照网络构成方式来分的话,交换机分为三类:接入层交换机、汇聚层交换机和核心层交换机。 按照OSI模型来划分的话,分为:二层交换机、三层交换机和四层交换机 还有一种按照硬件形态来划分,可以分成两类:盒式交换机和机框式交换机。 盒式交换机是一种有固定端口数,有时也会带有少量扩展槽的交换机。机架式交换机是一种插槽式的交换机,这种交换机扩展性较好,可支持不同的网络类型,可支持更大端口密度的网络。一般在数据中心的接入层都会采用盒式交换机,盒式...

monologuezjp的博客 4万+

安卓初中级开发基础知识整理(面试自用)

安卓开发者 闲暇之余整理自己的知识体系

我怀里的猫的博客 2001

基于 SoC 的卷积神经网络车牌识别系统设计(1)引言

通过 CPU 软核 IP 在纯 FPGA 平台上构建一个 AI SoC 卷积神经网络车牌识别系统,其中,缩放、填充层、卷积层、ReLU、池化层、全连接层 IP 都是 Verilog 设计的,同时集成了各种高性能的 IP。这是最具挑战性的 AI SoC 芯片设计项目,集成了 Python 卷积神经网络代码、Verilog 卷积神经网络硬件设计、ARM SoC 设计、ARM 与 FPGA 的交叉编译流程等等。这不仅是科研学习、集创竞赛、秋招求职的一个极具优势的精彩项目,也是目前最火热的芯片行业之中的一个...

新芯设计的博客 3780

Android 车载应用开发与分析(12) - SystemUI (一)

Android 车载应用开发与分析是一个系列性的文章,这个是第12篇,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理解车载应用开发的方式,积累android系统应用的开发经验。注意:本文的源码分析部分非常的枯燥,最好还是下载android源码然后对着看,逐步理顺逻辑。本文中使用的源码基于android-11.0.0_r48在线源码可以使用下面的网址(基于android-11.0.0_r21)

linkwj的博客 8709

MATLAB 与 STK 互联的两种连接方式详解

批量仿真推荐使用方法一;交互分析推荐使用方法二。可以根据具体任务灵活切换,也可以同时使用两种方式,提升建模与仿真的效率。

weixin_52370774的博客 1566

【Unity实战篇 】| Unity实现 文本框可以自适应大小,到达最大宽度之后再缩小字体

Unity实现 Text文本框可以自适应大小,到达最大宽度之后再缩小字体 需求:在文本框可以自适应大小拉伸的前提下,增加一个最大限制宽度,使其到达最大宽度后 再启用 Best Fit 实现自适应改变文字大小以适应文本框的大小。 在Unity中经常会用到文本组件的自适应大小功能,一般使用HorizontalLayoutGroup和ContentSizeFitter组件配合即可实现文本自适应的效果。

努力前行,总会成为自己心中的那道光 3万+

百度地图开发(安卓)

目录 一.获取开发密钥(AK) 二.在项目中集成BaiduMap SDK 三.显示地图 四.显示定位 一.获取开发密钥(AK) 1.百度搜索百度地图开发者,进入后选择登陆,没有百度账号则先进行注册: 百度地图开放平台 | 百度地图API SDK | 地图开发 2.登录后进入API控制台,选择图中“应用管理”下我的应用: 3.点击“创建应用”开始申请开发密钥,如下图: 4.如下图所示,输入应用名称"Task",选择应用类型“Android SDK”,并勾选如下启...

qq_51096893的博客 4952

数控系统(CNC)系列:Fanuc 31i-B_(16).CNC系统的网络连接与数据传输

硬件连接:包括网络接口的类型、连接方式等。网络协议:常用的网络协议包括Ethernet、Modbus TCP、Profinet等。网络配置:如何在CNC系统中配置网络参数,使其能够正确接入网络。在网络化的现代工业生产环境中,CNC系统的网络连接和数据传输能力变得越来越重要。通过以太网、Modbus TCP和Profinet等网络协议,可以实现CNC系统与上位机、其他CNC系统以及各种工业设备之间的高效通信。

2401_87715305的博客 2435

安卓手机远程控制DIY智能家居设备(ESP8266)

一、准备材料: 手机(安卓手机,如果没有请忽略整篇文章)。 电脑(windows, 如果没有请忽略整篇文章,此文章不适合大神阅读)。 DIY智能设备(ESP8266基本上是绕不过去的,如果没有那就买一套,最 多也就几十块钱,如果没有也不想买请忽略本文的绝大部分内容) 网络服务器(可以在阿里、腾讯、华为等平台租赁服务器,最低配置的就可以了!花费几十到几千,可以找促销活动的时候买,我在腾讯140米买了3年的一个最低配置的服务器,目前对我来说完全足够使用了!)。 服务器域名(自己玩的话可以忽略,反..

weixin_45778773的博客 5268

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙流程介绍

1 基础知识介绍1.1 缩略语BTIF: Bluetooth Interface BTU : Bluetooth Upper Layer BTM: Bluetooth Manager BTE: Bluetooth embedded system BTA :Blueetooth application layer CO: call out\CI: call in HF : Handsf

Walk More Slowly 4492

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: Android Native 异常捕获库
下一篇: Android 中 Handler的使用和源码详细分析
网络安全-XG
博客等级 码龄5年 1万+粉丝 2752原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值