我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CarPlay 无线连接(蓝牙+WIFI)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CarPlay 无线连接(蓝牙+WIFI)

一、引言

1.1 目的

此文档记录CarPlay 开发中无线连接开发部分,详细介绍CarPlay无线连接的流程。

1.2 简介

Carplay的无线连接,需要用户手动先连蓝牙,蓝牙连接上后,系统会自动连接WiFi,然后相关的握手认证完成后,蓝牙会自动断开。所以Carplay的连接本质上是WiFi连接。在Carplay连接成功后,用户使用Carplay的过程中,一般WiFi是连着的,蓝牙是断开的,蓝牙只是用于设备配对,身份认证,真正的CarPlay会话是通过WIFI进行。

二、架构设计

2.1 架构图

暂时无法展示此内容

三、连接流程

3.1 IPhone设备检测

通过蓝牙EIR查询设备的UUID, CarPlay UUID:2d8d2466-e14d-451c-88bc-7301abea291a

此UUID的设备支持无线CarPlay

3.2 连接socket

通过iAP2 UUID连接蓝牙socket,iAP2 socket UUID:00000000-deca-fade-deca-deafdecacafe

3.3 Beacon

无线CarPlay需要支持 Beacon Request and Report protocol以及Beacon Request and Report frame。wifi热点打开后beacon,beacon间隔为100ms。在IE中填充车机基础信息:

  • Element ID:必须设置为107

  • Length:必须设置为3

  • Access Network Options 字段:

    • Network Access Type 和Internet:必须根据互联网连接的可用性进行设置

    • ASRA:必须设置为0

    • ESR:必须设置为0

    • UESA:必须设置为0

  • Venue Info 是一个2位字节字段,必须包括:

    • Venue Group:必须设置为10(车辆)

    • Venue Type:必须设置为1(汽车)

3.4 open WiFi AP

因为在蓝牙socket通道中完成认证时需要向IPhone提供车机的热点信息并保证热点是可连接状态,所以WiFi热点的信息和打开操作需提前进行,以保证后续WiFi顺利连接。

需提供的WiFi AP信息

Name

ID

Type

Notes

WiFiSSID

0

utf8

Passphrase

1

utf8

Channel

2

uint8

参考《Accessory Interface Specification CarPlay Addendum R7》

IPAddress

3

utf8

IPv6 address must not include a zone index.

SecurityType

4

uint8

参考《Accessory Interface Specification CarPlay Addendum R7》

3.5 iAP2 身份认证

在Socket连接成功建立后,可以接收/发送iAP2数据,按照CarPlay标准流程进行Identification,Authentication,所需数据较多,且无线与有线的身份认证有差异,但数据包格式相同。具体参考《Accessory Interface Specification CarPlay Addendum R7》。

3.6 start CarPlay Session

身份认证成功且IPhone设备成功连接到车机热点后成功开启CarPlay Session,CarPlay Session相关数据传输则通过苹果官方插件库中提供的方法进行。

3.7 disable Bluetooth

在CarPlaySession成功建立后会收到Disable Bluetooth指令,此时断开蓝牙连接。

四、总结

4.1 经验总结

无线iAP2身份认证与有线大同小异,主要区别是需要提供的参数信息不同,具体需要提供哪些信息详细阅读《Accessory Interface Specification CarPlay Addendum R7》文档。

到此,CarPlay的初步开发已经完成了,但是还有一些功能未实现,比如说bunjor,Mode Change,Location 汇报,NowPlaying信息。如果对流程理解的话开发时间不会太久,最主要的还是CarPlay认证。

4.2 辅助工具

建议开发过程中使用MAC + ATS软件 ,需要从ATS下载证书安装到手机。若没有专业工具则通过爱思助手抓取IPhone日志分析。

来源地址:https://blog.csdn.net/xiaojian_007/article/details/130710124

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CarPlay 无线连接(蓝牙+WIFI)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

iOS开发蓝牙技术应用增加无线连接功能

这篇文章主要为大家介绍了iOS开发蓝牙技术应用增加无线连接功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-17

win7蓝牙如何连接

这篇文章主要介绍了win7蓝牙如何连接的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win7蓝牙如何连接文章都会有所收获,下面我们一起来看看吧。win7蓝牙连接方法1、首先在开始面板中找到“控制面板”。 2、找
2023-07-01

win11如何连接蓝牙

这篇文章主要介绍“win11如何连接蓝牙”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win11如何连接蓝牙”文章能帮助大家解决问题。1、首先点击任务栏中的开始,然后进入设置界面。 2、在菜单中选择
2023-07-01

iOS蓝牙开发 蓝牙连接和数据读写

在做蓝牙开发之前,最好先了解一些概念: 服务(services):蓝牙外设对外广播的必定会有一个服务,可能也有多个,服务下面包含着一些特征,服务可以理解成一个模块的窗口; 特征(characteristic):存在于服务下面的,一个服务下面
2022-05-26

win10电脑蓝牙无法连接怎么回事

蓝牙设备使得无需网络即可进行文件传输,以及连接蓝牙耳机享受音乐等功能。不过最近有网友说自己的win10电脑蓝牙无法连接怎么回事呢?下面小编就教下大家win10蓝牙设备连接不上的解决方法。这种情况有可能是驱动问题造成的,下面小编给大家演示下具
2023-07-16

Win8无法连接到无线网络如何设置连接无线wifi网络

Win8用户经常会遇到无法连接到无线网络的问题,在这里,小编跟大家分享,如何设置Win8系统连接无线网络。1、点击右下角网络连接图标。Win8系统设置连接无线网络2、此时屏幕右侧会列出当前搜索到的网络连接。选择要连接的网络,然后单击。Win
2022-06-04

Android 蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接篇)

公司的一个手机端的 CRM 项目最近要增加小票打印的功能,就是我们点外卖的时候经常会见到的那种小票。这里主要涉及到两大块的知识:蓝牙连接及数据传输ESC/POS 打印指令 蓝牙连接不用说了,太常见了,这篇主要介绍这部分的内容。但ESC/PO
2022-06-06

无法连接win10蓝牙设备的解决方案

我们可以利用蓝牙设备,在无网络环境下传输文件或连接蓝牙耳机欣赏音乐等。但最近,一些网民说,他们的win10计算机蓝牙不能连接怎么了?下面的小边将教你如何连接win10蓝牙设备。这种情况可能是由驱动问题引起的。以下小系列将向您展示具体的解决方
2023-07-10

macbookair如何连接蓝牙耳机

这篇文章主要介绍“macbookair如何连接蓝牙耳机”,在日常操作中,相信很多人在macbookair如何连接蓝牙耳机问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”macbookair如何连接蓝牙耳机”的疑
2022-12-27

android系统蓝牙自动连接

实现的主要功能(蓝牙配对成功如何与远程设备一直连接) 1.当蓝牙配对成功连接时,非主动断开会自动连接 2.当设备长时间锁屏会导致CachedBluetoothDevice自动清空,如果蓝牙断开就不会自动连接的处理 实现步骤 监控蓝牙断开连接
2022-06-06

win10如何连接蓝牙设备

这篇文章主要介绍“win10如何连接蓝牙设备”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10如何连接蓝牙设备”文章能帮助大家解决问题。具体步骤:1.确保电脑和设备的蓝牙都已经打开,右击快捷按
2023-06-27

win7蓝牙如何连接手机

这篇“win7蓝牙如何连接手机”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7蓝牙如何连接手机”文章吧。1、在蓝牙图标
2023-07-01

win10怎么连接蓝牙耳机

今天给大家介绍一下win10怎么连接蓝牙耳机。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。  随着科技的发展,现如今无线的装备特别受年轻人的喜欢,而蓝牙耳机就
2023-06-26

教你win10蓝牙怎么连接

win10系统支持蓝牙功能,因此很多蓝牙设备比如说蓝牙鼠标,蓝牙耳机,蓝牙音箱等都可以连接win10蓝牙功能使用。然而,一些网友对于如何连接win10蓝牙不太熟悉。下面小编就教下大家连接win10蓝牙使用的方法。具体的步骤如下:1、点击电脑
2023-07-10

windows电脑如何连接蓝牙

要将Windows电脑连接到蓝牙设备,请按照以下步骤进行操作:1. 打开Windows电脑的“设置”(可通过开始菜单或任务栏上的齿轮图标访问)。2. 在“设置”窗口中,选择“设备”选项。3. 在“设备”选项卡中,点击“蓝牙和其他设备”。4.
2023-09-17

windows10怎么连接蓝牙耳机

蓝牙耳机是现下非常受欢迎的一种电子产品,很多用户都会连接蓝牙耳机到电脑听歌,那么windows10怎么连接蓝牙耳机呢?你先点击桌面右下角的通知图标,以后找到蓝牙开启,点击添加蓝牙或其它设备,在弹出来的界面中选择蓝牙,然后在搜索结果那边选择你
2023-07-10

win10蓝牙无法连接怎么办的解决方法

最近有windows10系统用户到本站反馈说碰到这样一个现象,就是要使用蓝牙功能的时候,发现蓝牙无法连接设备,遇到这样的问题该怎么办呢,现在就随小编一起来看看win10蓝牙无法连接的解决方法,大家一起来看看吧。1、针对蓝牙无法连接的问题出现
2023-07-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录