Android BlueTooth
文章平均质量分 75
趟石过河
这个作者很懒,什么都没留下…
展开
-
蓝牙随笔1
蓝牙规范包括:Core Specification(核心规范),用于规定蓝牙设备必须实现的通用功能和协议层次。它由软件和硬件模块组成,两个模块之间的信息和数据通过主机控制接口(HCI)的解释才能进行传递。Profiles(蓝牙应用规范),它从应用场景的角度为蓝牙技术的使用制定了不同的规范。这也是和大众日常生活接触最多的一部分。蓝牙支持很多Profiles,下文将介绍几种使用最广泛的蓝牙应用原创 2014-01-27 16:44:29 · 1812 阅读 · 0 评论 -
dbus实例讲解(二上):消息和消息总线
应用程序A和消息总线连接,这个连接获取了一个众所周知的公共名(记作连接A)。应用程序A中有对象A1提供了接口I1,接口I1有方法M1。应用程序B和消息总线连接,要求调用连接A上对象A1的接口I1的方法M1。在上一讲的加法例子中,上面这段话可以实例化为:应用程序example-service和会话总线连接。这个连接获取了一个众所周知的公共名“org.fmddlmyy.Test”。应用程序exam转载 2012-06-19 17:52:19 · 1055 阅读 · 0 评论 -
dbus实例讲解(一):初次见面
http://blog.csdn.net/fmddlmyy/archive/2008/12/23/3585730.aspx 网上有不少介绍dbus的文章。本文的目标是补充一些简单的例子。1、dbus是什么东西?网上有一篇叫“D-Bus Tutorial”的文章,流传较广。不少介绍dbus的资料,都引用了其中的段落。其实相对于这篇文章,我建议大家直接读“D-Bus Specifi转载 2012-06-19 17:52:13 · 1363 阅读 · 0 评论 -
Android Wifi BT的工作流程和porting(精)
Wifi 网卡状态1. WIFI_STATE_DISABLED: WIFI网卡不可用2. WIFI_STATE_DISABLING: WIFI正在关闭3. WIFI_STATE_ENABLED:WIFI网卡可用4. WIFI_STATE_ENABLING:WIFI网卡正在打开5. WIFI_STATE_UNKNOWN:未知网卡状态 WIFI转载 2012-07-04 19:15:27 · 2515 阅读 · 2 评论 -
Linux下Bluetooth HCI Command的实现
作者:Sam(甄峰) sam_code@hotmail.com Linux下写Bluetooth程序,首先接触到的就是使用HCI Command来设置BluetoothModules(USB Bluetooth dongle)。那这些HCIcommand在blueZ中是如何实现的呢?举例说明。if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, B转载 2012-07-04 17:24:08 · 1013 阅读 · 0 评论 -
Bluetooth HCI Event的处理
作者:Sam(甄峰) sam_code@hotmail.com1.当Bluetooth USBdongle插入USB接口时,driver/bluetooth/hci_usb.c中probe程序被调用。probe会调用hci_register_dev()--〉tasklet_init(&hdev->rx_task,hci_rx_task, (unsigned long) hdev);将h转载 2012-07-04 17:23:58 · 824 阅读 · 0 评论 -
Linux 下Bluetooth开发包--BTX的开发的背景介绍
作者:Sam(甄峰) sam_code@hotmail.comBTX背景介绍:Sam所在公司需要Linux下与Bluetooth Game Control连接,Linux为操作系统的嵌入式设备使用USBBluetooth Dongle与Bluetooth GameControl连接,并收发数据。Sam评估后决定用以下结构:1. HID,L2cap, hci 这三层protoco转载 2012-07-04 17:23:55 · 813 阅读 · 0 评论 -
Linux BlueZ 下 Inquiry的实现
作者:Sam(甄峰) sam_code@hotmail.com前面讲了使用 ioctl发送HCI Command的方法。但HCIprotocol还有一些Command,比如Inquiry等,他们则不需要使用ioctl来发送。blueZ直接提供了支持,虽然他们的最终都是用同样办法实现的。在应用程序中:hci_inquiry(dev_id, length, num_rsp, NUL转载 2012-07-04 17:24:01 · 635 阅读 · 0 评论 -
Bluetooth Sniff 详解
作者:Sam(甄峰) sam_code@hotmail.com前面讲了Blueooth Remote Control发送Sniffrequest,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff.在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave 处于ActiveMode,它将在在每个Master 发送ACL S转载 2012-06-18 09:28:15 · 780 阅读 · 0 评论 -
如何设置Android系统中的BT2.1 device到SSP的DEBUG模式
可以在ADB shell中通过HCI command命令来实现,如下: //打开SSP的debug模式#> hcitool cmd 0x06 0x04 0x01 01> HCI Event : 0x0e plen 4 01 04 18 00 //关闭SSP的debug模式#> hcitool cmd 0x06 0x04 0x00 具体定义可转载 2012-06-19 17:52:28 · 492 阅读 · 0 评论 -
dbus实例讲解(二下):消息和消息总线
2.3.2、ListActivatableNames和服务器的自动启动运行:$ dbus-send --system --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.ListActivatableNames和$ dbus-send --session --print-reply --dest=or转载 2012-06-19 17:52:23 · 933 阅读 · 0 评论 -
使用 JSR-82 API 实现 OBEX 图像传输
本文的目的是提供关于无线蓝牙技术 Java API(即 JSR-82 API)的实践体验。如果您不熟悉蓝牙语义,不要担心。我将在蓝牙协议简介及其用例(称为蓝牙模式)中介绍这些内容。因为本应用程序将展示如何使用蓝牙技术向其他蓝牙设备传输图像,所以还将展示如何使用 JSR-75 的 File Connection API 以程序的方式对移动设备进行访问。在本文结束时,将获得能够向远程蓝牙设备传输图像的转载 2012-06-19 17:52:31 · 627 阅读 · 0 评论 -
Android Bluetooth 分析(精)
bluetooth是一种短距离无线通讯传输接口,允许的传输距离长度设计为10米到100米,当含有bluetooth的手机或计算机等 在多个含bluetooth装置的环境中,设备尚未加入蓝牙微网时,它会先进入待机状态。在此状态下,它会随时监听传呼讯息,直到收到的信号与自己本身的识别码有相关时,自己才会激活bluetooth服务称为Master时,开始寻找外围所有bluetooth装置称为Slave,转载 2012-07-05 15:36:13 · 2708 阅读 · 0 评论 -
Linux蓝牙系统(3)
一.Linux对于蓝牙的支持--------------------------------------------------------------参见如下协议图,在HCI界面之上需要软件来实现。 1.Linux 内核对蓝牙支持 在Linux 2.6内核已经实现如下协议。 串口形式蓝牙设备驱动(HCI UART driver) USB蓝牙棒驱动(HCI转载 2013-04-10 17:46:37 · 2613 阅读 · 0 评论 -
蓝牙驱动层调用流程
通过上层应用或者adb tool调用bt_enable,可以打开蓝牙进行相关调试工作,这里就从bt_enable开始对相关蓝牙和服务的启动情况作个简单的说明。 1,Bluetooth.c文件中Bt_enable(){…//rfkill机制给蓝牙上电Set_bluetooth_power(1);//启动hciattach服务,串口服务Property_set(“ctl转载 2013-04-10 17:00:26 · 1139 阅读 · 0 评论 -
蓝牙中的profile
profile为协议的使用规范。由于设备类型的差别太大了,就用不同的等级来区分,例如手机、电脑等,每一种设备类型做一个规范,就是profile。所以要熟悉蓝牙开发流程,必须先要对各层协议进行了解。常见的配置文件1.通用访问配置文件(Generic Access Profile,GAP),该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接。(GAP)定义了蓝牙设备转载 2012-07-10 14:22:15 · 1224 阅读 · 0 评论 -
蓝牙core spec v4.0研读笔记
蓝牙core spec v4.0研读笔记(一)1. Broadcast links have no feedback route, each packet is transmitted several times to increase the probability that the receiver is able to receive at least one of the转载 2012-07-09 13:53:54 · 3187 阅读 · 0 评论 -
A2DP
A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定! A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0—转载 2012-07-08 16:34:45 · 910 阅读 · 0 评论 -
BTX初建
作者: Sam(甄峰) sam_code@hotmail.com1. 因为BTX是Sam设计的整个架构的基础,需要非常稳定。所以Sam决定每个接口都经过大量测试。1.1.单独的接口测试,包括[in]参数的边界测试,超出范围测试,[out]参数的参数为空,buffer不足够测试等。接口多次调用测试。1.2. 多个接口组合测试,各个接口的各种常规和非常规组合测试。有意使用错误组合和参数转载 2012-07-04 17:23:34 · 550 阅读 · 0 评论 -
通过Bluez提供的Interface发送HCI Command
作者: Sam(甄峰) sam_code@hotmail.com背景:Sam在做Bluetooth USB Dongle与Bluetooth RemoteControl连接的程序时。因为Bluetooth Remote Control会在连接后发送 sniffrequest.约定双方的数据频率为5ms. 但因为Linux程序这端没有处理Sniff(缺省为disable).所以这个r转载 2012-07-04 17:23:03 · 879 阅读 · 0 评论 -
DTIM 的含义
Delivery Traffic Indication Message DTIM用于传统节电模式中,多点的应用,即由AP通过设置DTIM的间隔(缺省是一个beacon时间,100ms),根据这个间隔发送组播流量。这个值不会影响单播的流量传递,如果没有开启PS的用户使用组播也不会收到影响,但是会影响开启了PS的用户接收多播数据的传递,如果设置的太小,起不到节电作用,太大又可能会影响组播通转载 2012-06-18 09:24:55 · 1075 阅读 · 0 评论 -
使用BlueZ Interface修改ACL连接Supervision timeout
作者: Sam (甄峰) sam_code@hotmail.com背景:Sam在做Bluetooth USB Dongle与Bluetooth RemoteControl连接的程序时。注意到当手柄断电时,需要20s时间才能够接收到Disconnect Event.(Error Code:timeout). Ray觉得这个时间太久。要求修改到5-6s.实际上,因为Bluetoot转载 2012-06-18 09:28:29 · 1337 阅读 · 0 评论 -
Linux Bluetooth编程 (八) Class of Device
作者:Sam (甄峰) sam_code@hotmail.com 在设备被发现阶段,设备的Class of device被提供出来。指出此设备是何种类型,以及支持哪些服务。 回想前面HCI章节所说,Inquiry时,会返回找到的设备信息,其中包括BDADDR等。其中dev_class字段就是Classof Device. typedef struct { b转载 2012-06-17 10:12:54 · 942 阅读 · 0 评论 -
Linux Bluetooth编程 (七) SDP协议
作者:Sam (甄峰) sam_code@hotmail.com Service DiscoveryProtocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。服务发现协议(SDP或BluetoothSDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetoothclient发现可用b转载 2012-06-17 10:11:23 · 731 阅读 · 0 评论 -
Linux Bluetooth编程(六) L2CAP编程实例
作者:Sam (甄峰) sam_code@hotmail.com 例一:发送Signaling Packet:Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得SignalingCommand使用CID 0x0001.多个Command可以在一个C-frame(control frame)中发送。Bluetooth编程(六) L2C转载 2012-06-17 10:10:52 · 974 阅读 · 0 评论 -
Linux Bluetooth编程(五) Socket与Bluetooth
作者: Sam (甄峰) sam_code@hotmail.com Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZKernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将LinuxBluetooth做个研究。 1957年10月4日,星期五,苏联发射了人类历史上第一颗人造转载 2012-06-17 10:10:21 · 819 阅读 · 0 评论 -
Linux Bluetooth编程(三) HCI层编程
作者:Sam (甄峰) sam_code@hotmail.com(HCI协议简介,HCI在BlueZ中的实现以及HCI编程接口) 1. HCI层协议概述:HCI提供一套统一的方法来访问Bluetooth底层。如图所示: Bluetooth编程(三) HCI层编程" title="实战Linux Bluetooth编程(三) HCI层编程"> 从图上可以看出,Host转载 2012-06-17 10:09:21 · 702 阅读 · 0 评论 -
Linux Bluetooth编程(二) BlueZ简介
作者: Sam(甄峰) sam_code@hotmail.com Linux下Bluetooth协议栈的实现.Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix,Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。 BlueZ基础代码均是由MaximKrasnyansky完成的。包括:HCI,L2CAP,R转载 2012-06-17 10:08:48 · 868 阅读 · 0 评论 -
Linux Bluetooth编程(一) 协议栈概述
作者:Sam (甄峰) sam_code@hotmail.com Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluezAPI记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。 前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要转载 2012-06-17 10:08:06 · 781 阅读 · 0 评论 -
PTA是什么?BT-WIFI共存
蓝牙和WIFI共存设计 蓝牙和802.11b/g/n都可能工作在2.4GISM,可能互相干扰。干扰的典型应用之一是VOIP,用手机的WLAN打VOIP电话,用蓝牙耳机来通话。互相干扰的后果是用户能感觉到通话质量的下降。 设计上有些方法能够减少相互干扰,尽量维持蓝牙和wifi的throughput,使得用户的使用体验不受影响。方法主要是AFH和分时。 是否存在相互干扰和相互转载 2012-06-17 09:57:46 · 1238 阅读 · 0 评论 -
Linux Bluetooth编程(九) SDP层编程
作者:Sam(甄峰) sam_code@hotmail.com 先前的章节谈过SDP协议。但没有具体讲如何编程。BlueZ提供的SDP API,常见的如下: 1.sdp_session_t *sdp_create(int sk, uint32_tflags)参数1:sk: socket参数2:SDP flags. 取值如下:#define SDP_RETRY_转载 2012-06-17 10:15:02 · 605 阅读 · 0 评论 -
Android/Bluetooth 初始化流程
=========================Kernel Space=========================1. Board power initMACHINE_STARTinit_machine = comet_initbt_power_initbluetooth_power2. HCI device/connection manager, s转载 2012-06-17 10:16:25 · 653 阅读 · 0 评论 -
JSR82 API 介绍(中文)——API概览 1
蓝牙是一种低成本、短距离的无线通信技术。对于那些希望创建个人局域网(PANs)的人们来说,蓝牙技术已经越来越流行了。每个个人局域网都在独立设备的周围被动态地创建,并且为蜂窝式电话和PDA等设备提供了自动连接和即时共享数据的能力。 为了在Java平台上开发支持蓝牙技术的软件,JCP定义了JSR82标准--Java蓝牙无线技术APIs(JABWT)。 在这篇文章中,我将介绍一些关于转载 2012-06-17 09:58:30 · 865 阅读 · 0 评论 -
Merlin II Bluetooth Protocol Analyger使用
作者:Sam(甄峰) sam_code@hotmail.com 在写Bluetooth程序时,常常需要得到Bluetooth包是否发送以及内容是怎样。这就和写网络程序时需要抓包相同。但与网络程序(使用Ethereal)不同的是,bluetooth是无线传输的,所以需要借助BluetoothProtocol Analyger(蓝牙分析仪)。Sam当前使用的是Merlin II Bluetoo转载 2012-06-17 10:12:24 · 637 阅读 · 0 评论 -
深入理解Bluetooth协议栈(一) ACL连接的建立和断连
作者:Sam(甄峰) sam_code@hotmail.com Sam在写一些Bluetooth Driver和应用程序时,常发现如果没有深入理解Bluetooth协议栈,则出现问题后很难准确定位和查找。所以这段时间的工作为基础,尝试深入理解Bluetooth协议栈。 在基于BlueZ开发应用程序时,最先遇到的就是怎样建立一个连接,如L2CAP连接的建立。因为BlueZ封装的很好转载 2012-06-17 10:12:00 · 2578 阅读 · 0 评论 -
Linux Bluetooth编程(四) L2CAP层编程
作者:Sam (甄峰) sam_code@hotmail.com(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口) 一:L2CAP协议简介:Logical Link Control and AdaptationProtocol(L2CAP) 逻辑连接控制和适配协议 (L2CAP)为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操转载 2012-06-17 10:09:51 · 986 阅读 · 0 评论 -
Bluez D-Bus Architecture
Bluez D-Bus Architecture 收藏The BlueZ D-Bus interfaces aim to provide seamless Bluetooth technology integration into the desktop. A central Bluetooth daemon "hcid"(planned to be renamed to bluetoot转载 2012-06-17 10:02:48 · 1365 阅读 · 0 评论 -
BlueZ的交叉编译
Sam几年前在写Linux下Bluetooth程序时,就基于BlueZ库。3年多过去了,没有再研究过Bluetooth。最近有个需求需要重新研究一下BlueZ中的实现。看看BlueZ,竟然也使用git管理了。再看看结构,变化也非常大。看来重新实现一套BlueZ完整的交叉编译也是有意义的。 一.下载blueZ:www.bluez.org download页面(http://git.ker转载 2012-06-17 10:06:20 · 4257 阅读 · 0 评论 -
Android/Bluetooth dbus相关函数
dbus_error_init(&err);dbus_error_is_set(&err)dbus_error_free(&err);dbus_connection_set_exit_on_disconnectdbus_connection_register_object_pathdbus_connection_unregister_object_pathdbus_co转载 2012-06-17 10:00:29 · 627 阅读 · 0 评论 -
Android Bluetooth 官方 API 介绍
packageandroid.bluetoothClasses | Description Provides classes that manage Bluetooth functionality, such as scanning fordevices, connecting with devices, and managing data transfer between转载 2012-06-17 09:59:46 · 419 阅读 · 0 评论