From

蓝牙服务

通过蓝牙,设备可以传输数据并供各种交互式服务(例如音频、短信和电话)使用。您可以在以下位置找到用于不同服务的蓝牙配置文件: include/hardware/bluetooth.h

音频

注意:目前只有传统版(非低功耗)蓝牙支持所有类型的音频流式传输。

利用蓝牙连接,用户可在启用了蓝牙的设备上流式传输音频。对于大多数音频用例,Android 设备是音频源,呈现设备(例如音响设备或耳机)是接收器。

绝对音量控制

在 Android 6.0 及更高版本中,Android 蓝牙堆栈允许音频源设置绝对音量,以便用户准确控制音频音量。音频源设备会将音量信息和未衰减的音频发送到接收器。然后,接收器会根据音量信息放大音频,以便用户听到准确的播放音量。

音频源设备还可以注册接收音量通知。进行此项注册后,当用户使用接收器上的控件更改音量时,接收器便会向音频源发送通知。这样一来,音频源便能够准确地在界面上显示音量信息。

绝对音量控制默认处于开启状态。要停用绝对音量控制,用户可以依次转到设置 > 系统 > 开发者选项,然后选择停用绝对音量功能开关。

高级音频编解码器

在 Android 8.0 中,使用高级音频分发配置文件 (A2DP) 的设备可以支持额外的音频编解码器。当设备连接到远程音频接收器时,蓝牙堆栈支持音频编解码器协商。该协商旨在选择发送器和接收器都支持的最佳编解码器,以提供高质量的音频。之后,所有音频都会先路由选定的编码器,然后再发送到接收器。

实现

运行 Android 8.0 且支持 A2DP 的设备会自动获得额外编解码器支持。设备制造商可能需要针对某些专有音频编解码器获得单独的许可和二进制 Blob。除了 SBC,Android 8.0 还支持以下编解码器:

  • AAC
  • aptX
  • aptX HD
  • LDAC

设备制造商可以选择他们的设备首先尝试使用哪些编解码器。您可以通过在 res/values/config.xml 中更改以下值来设置编解码器的优先级:

  <!-- Configuring priorities of A2DP source codecs. Larger value meanshigher priority. Value -1 means the codec is disabled.Value 0 is reserved and should not be used here. Enabled codecsshould have priorities in the interval [1, 999999], and eachpriority value should be unique. --><integer name="a2dp_source_codec_priority_sbc">1001</integer><integer name="a2dp_source_codec_priority_aac">2001</integer><integer name="a2dp_source_codec_priority_aptx">3001</integer><integer name="a2dp_source_codec_priority_aptx_hd">4001</integer><integer name="a2dp_source_codec_priority_ldac">5001</integer>

LDAC 认证

Android 开源项目纳入了索尼的 LDAC 编解码器,因此对于该编解码器,不需要单独的许可或 Blob。要将 LDAC 编解码器集成到您的设备中,请向索尼提交申请,并按照 LDAC 认证流程进行操作。

LDAC 认证网站上提供了关于 LDAC 的文档(例如规范和操作手册),而且还提供了针对移动设备和平板电脑设备的验证和互操作性测试。需要将表明通过测试的结果发送给索尼,才能完成 LDAC 认证。

界面功能

除了额外编解码器支持,Android 8.0 还提供了一项面向用户的设置,用于停用高清 (HD) 蓝牙音频编解码器。

  1. 依次转到设置 > 已连接的设备 > 蓝牙
  2. 点按您要停用编解码器的接收器旁边的齿轮图标。
  3. 取消选中 HD 音频复选框。

对“设置”进行自定义的设备制造商应为用户实现一种停用高清编解码器的方式。

短信

借助通过蓝牙发送短信的功能,用户可以从远程设备阅读、浏览和撰写短信。该功能通常是在将手机连接到车载信息娱乐系统时使用。

注意:蓝牙短信服务目前仅支持短信,不支持电子邮件和即时通讯。

电话

通过蓝牙电话服务,用户可以将通话从手机流式传输到另一台蓝牙设备,并可以将手机中的联系人信息同步到另一台蓝牙设备。这些功能经常是在用户开车时用于进行免提通话。

在 Android 8.0 中,蓝牙支持手机默认铃声。当通过蓝牙连接的手机收到来电时,接收器上将会播放铃声。要启用手机默认铃声,请依次转到设置 > 系统 > 开发者选项,然后选择启用手机默认铃声开关。

蓝牙功能

为了实现蓝牙服务,蓝牙堆栈支持多种配置文件和功能。

蓝牙配置文件

可用的蓝牙配置文件如下:

功能 Android 版本
名称 说明 6.0 7.0 7.1 7.1.2 8
SAP SIM 卡访问配置文件 1.1 1.1 1.1 1.1 1.1
MAP 用于短信的消息访问配置文件 1.2 1.2 1.2 1.2 1.2
OPP 对象推送配置文件 1.1 1.1 1.1 1.1 1.2
OBEX over L2CAP 通过逻辑链路控制和适配协议进行对象交换
HFP 音频网关 免提模式配置文件 1.6 1.6 1.7 1.7 1.7
HSP 耳机配置文件 1.2 1.2 1.2 1.2 1.2
A2DP 高级音频分发配置文件 1.2 1.2 1.2 1.2 1.2
AVRCP 音频/视频远程控制配置文件 1.3 1.3 1.3 1.3 1.4
HID 人机接口设备配置文件 1.0 1.0 1.0 1.0 1.0
PBAP 电话簿访问配置文件 1.1.1 1.1.1 1.1.1 1.1.1 1.2
HDP 健康设备配置文件 1.0 1.0 1.1 1.1 1.1
SPP 串行端口配置文件 1.2 1.2 1.2 1.2 1.2
PAN/BNEP 个人区域网络配置文件/蓝牙网络封装协议 1.0 1.0 1.0 1.0 1.0
DIP 设备 ID 配置文件 1.3 1.3 1.3 1.3 1.3
HOGP 1.0 HID over GATT
高清音频1 请参阅上面的“高级音频编解码器”

1实现高清音频同时取决于音频源和接收器上的设备功能。

蓝牙低功耗功能

可用的 BLE 功能如下:

功能 Android 版本
名称 6.0 7.0 7.1 7.1.2 8.0
BR/EDR 安全连接 4.1 4.1 4.1 4.1 5.0
LE 隐私 4.2 4.2 4.2 4.2 5.0
LE 安全连接 4.2 4.2 4.2 4.2 5.0
数据包扩展 4.2 4.2 4.2 4.2 5.0
32 位 UUID
双模式 LE(中央/外设)
LE 外设模式
Google HCI 要求
LE 连接导向型频道

Android蓝牙服务相关推荐

  1. Android 蓝牙服务

    Android 蓝牙学习  @# Android 蓝牙 目录 蓝牙服务 服务(Service) 特性(Characteristic) 属性(Property) 什么是 UUID<

  2. Android 蓝牙

    从事Connectivity模块几年时间了,Team负责集成包括WiFi/Bluetooth(A2DP Source/Sink,HID[key/Audio],OPP,SPP)投屏类[Miracast, ...

  3. android 蓝牙 连接失败,Android蓝牙连接 – 服务发现失败

    我正在尝试创建一个基本的蓝牙应用程序,用于测试设备. 我从developer.android获得了代码. 这是链接: http : //developer.android.com/guide/topi ...

  4. Android App 与 蓝牙服务 通信变更

    首先,让我们来回顾下 Google官方 在 Android 5.0 引入的媒体应用框架:Android MediaSession框架简析. 然后,由于支持 蓝牙音乐 的音乐类App,也是基于 Medi ...

  5. 安卓系统蓝牙服务com.android.bluetooth的使能

    蓝牙系统服务层的使能流程分析 蓝牙服务层的使能基础是其初始化完成,也就是AdapterService通过onBind()将AdapterServiceBinder上报给bind该服务的调用者.我们现在 ...

  6. Android蓝牙打印服务,GitHub - ZhuangXiong/BluetoothPrint: android bluetooth print .蓝牙打印

    Android 蓝牙打印 入口和回调方便,目前只针对一个打印模板做了封装. 没有扫描设备功能,后期会加入.用户需要先去 设置---蓝牙---配对设备,配对完成后,可以获取手机上已配对的设备信息,从而进 ...

  7. android蓝牙音乐之AVRCP介绍和使用

    引言 最近做的车载蓝牙音乐开发,遇到很多问题,记录一下.也是到处东拼西凑的,勉强看看吧. AVRCP:Audio/Video Remote Control Profile,音视频远端控制协议,所以该协 ...

  8. Android蓝牙开发前序知识

    1.前言 作为Android工程师,对于蓝牙不应该仅仅停留在调用API的层面上,尽量多知道一些,也是技术的成长.本文多半来源于复制粘贴,但是从白话文到稍微技术性方面,也能较好的理解蓝牙方面的应用.由于 ...

  9. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

最新文章

  1. SSL连接并非完全问题解决
  2. 纸飞机html,Flyaway.css-炫酷纯CSS3纸飞机动画特效
  3. 一个fork的面试题
  4. testng入门教程5TestNG套件测试
  5. php 匹配正则,php正则匹配类
  6. 轮胎的体积与面积计算
  7. MAC编译出错:Undefined symbols for architecture x86_64: “_CFRelease“, referenced from:
  8. Talib技术因子详解(八)
  9. V4L2视频采集与H264编码4—X264编码H264视频
  10. Idea webstorm安装主题
  11. 10. InnoDB表空间加密
  12. 驻波检测及双向耦合器参数说明
  13. Spring Boot系列——日志配置
  14. 如何用云计算搭建服务器,如何搭建一个云服务器
  15. adb Error: failed to write; /data/local/tmp/??.apk (No such file or directory)
  16. python中ospathjoin_python-在Windows上与os.path.join混合斜杠
  17. Html调用手机打电话功能
  18. vim 配置及插件安装管理(超级详细)
  19. python求sinx近似值_c语言求sinx的近似值 c语言求sinx近似值
  20. Latex图片、公式、参考文献插入技巧

热门文章

  1. FastD 最佳实践二: 构建配置中心
  2. VS2010打开项目时弹出错误提示。。。VisualStudio\10.0\ActivityLog.
  3. Javascript之旅——第十站:为什么都说闭包难理解呢?
  4. linux mint 16 安装chrome 浏览器
  5. vim中设置tab的长度的方法
  6. Flask 框架 是 Python 中最流行的 Web 框架之一
  7. Node.js Web开发框架
  8. 在java中转义符 n代表什么_在Java中,表示换行符的转义字符是()。 A.\nB.\fC.n D.\ddd...
  9. android动态添加圆,Android开发中TextView 实现右上角跟随文本动态追加圆形红点
  10. 20165221 JAVA第四周学习心得