首页
学习
活动
专区
圈层
工具
发布

BLE低功耗蓝牙与经典蓝牙(持续更新)

传统蓝牙有3个功率级别,Class1,Class2,Class3,分别支持100m,10m,1m的传输距离 双模蓝牙:即在蓝牙模块中兼容BLE和BT 在Android 4.3及更高版本,Android...也就是说在Android 4.3以上,我们可以通过Android 原生API和蓝牙设备交互。...蓝牙技术联盟所用的基本UUID不能用于任何定制的属性、服务和特性。对于定制的属性,必须使用另外完整的128位UUID。...还可以扩展很多其他功能,比如使用BLE实现蓝牙聊天(google sample里面有经典蓝牙的聊天demo),还可以把手机模拟成iBeacon等等。...关于订阅收不到这里,需要注意一下,首先你写入的和订阅的Characteristic对象一定要属于同一个Service对象,另外就是保证你写入的数据没问题,否则就可能收不到订阅回调。

10.1K11

Android开发(19) 使用adb建立pc和android设备之间的连接

想建立pc和手机之间的同步,我们需要依托adb来实现。我们看看adb是什么?...它的主要功能有:   * 运行设备的shell(命令行)   * 管理模拟器或设备的端口映射   * 计算机和设备之间上传/下载文件   * 将本地apk软件安装至模拟器或...该端口将某个android的端口,应该到pc的端口,然后我们就可以使用这个端口和设备进行通讯了。...在服务里启动监听服务,我们需要监听来自某个端口的消息,这个端口是手机和pc之间的同路。由于android 设备的特点,我们需要用java nio来实现监听,以提高性能。...3.实现监听服务里的消息响应,根据具体的业务需要,完成和pc之间的消息响应。

2.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android蓝牙开发(二)之蓝牙配对和蓝牙连接

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接 1....蓝牙配对    搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对   蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对  ...自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式   点击配对,调用 BluetoothDevice.class.getMethod...; mBluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(BltContant.SPP_UUID); BltContant.SPP_UUID...是一个UUID常量,至于UUID是什么,大家可以自行百度,因为详细的文章已经很多了。

    5.5K20

    Android蓝牙开发(二)之蓝牙配对和蓝牙连接

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接 1....蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对...自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式 点击配对,调用 BluetoothDevice.class.getMethod...(BltContant.SPP_UUID); BltContant.SPP_UUID是一个UUID常量,至于UUID是什么,大家可以自行百度,因为详细的文章已经很多了。...: 在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下: /** * 开启服务端

    5.2K20

    Android BLE 蓝牙开发,连接蓝牙设备进行通讯

    然后才有了我们现在的各种穿戴设备例如手环,蓝牙耳机,蓝牙电子秤,蓝牙音箱等等的爆发。 同时,其他工业或者外置设备也都开始大量支持蓝牙通讯。因为能耗和成本降低了。...以上术语的介绍来源于Android官网 2.2 通讯过程 假如我们有一个蓝牙外置设备(Device),然后有一个支持蓝牙的移动设备(Phone)。两者之间的通讯方式步骤是: Device 开启蓝牙。...3.2 检测设备是否支持蓝牙 通常情况下,手机是有蓝牙的。而我们如果在其他 Android 系统的设备中,例如TV,平板,一体机等等。是否有蓝牙还真不能完整保证。...小结 到这里蓝牙的链接和读取就结束了。 我们通过bluetoothAdapter 查找到蓝牙设备之后,再通过GATT服务进行蓝牙设备与手机之间的配对。直接比对UUID,而不再需要PIN码进行配对了。...(PS:有些安全性要求比较高的设备,还是会需要主动进行PIN码配对。PIN配队就只能通过系统设备界面中的蓝牙功能项进行操作了。) 通过GATT服务连接成功后。

    10.2K30

    【Android 应用开发】BluetoothDevice详解

    需要权限 android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作; android.permission.BLUETOOTH_ADMIN... : 允许程序发现和配对蓝牙设备, 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作; 优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提..., 值为12; 远程设备已经匹配; 本地存储了一个该远程设备的共享连接, 本地设备和远程设备之间的通信可以被认证和加密; 这个连接不是已经连接成功, 时刻保持连接状态, 这个连接的作用是, 下次连接的时候不用再次建立新的蓝牙连接...方法创建的BluetoothServerSocket连接是对应的, 调用BluetoothSocket对象的connect()方法创建一个连接, 通过UUID执行对应信道的SDP查找动作;  如果两个安卓手机之间进行连接需要生成专用的...UUID, 如果是对蓝牙串口进行连接, 就使用总所周知的SPP UUID 00001101-0000-1000-8000-00805F9B34FB 参数 : 用来识别远程蓝牙设备的UUID, 该UUID

    2.6K30

    蓝牙门禁Android客户端

    2在系统为4.2及以下可以调用静态方法getDefaultAdapter()获取设备本地适配器;在系统为4.3及以上版本调用BluetoothManager的getAdapter() 类中其他重要方法...:获取已经配对的设备--BluetoothDevices的set集合,开始发现设备--bool,创建侦听的RFCOMM安全/非安全通道 第二个类为BluetoothDevice: 远程蓝牙设备,可以通过...返回的是BluetoothSocket对象 注意点:如果连接蓝牙串行板,尝试使用著名的UUID-00001101-0000-1000-8000-00805F9B34FB(一般固定的)然而若是一个Android...最常见的蓝牙套接字类型是RFCOMM,这是Android API支持的类型。 RFCOMM是面向连接的,通过蓝牙的流传输。 它也称为串行端口配置文件(SPP)。...BluetoothServerSocket类:  其中有两个重载方法,一个可设置超时连接,方法阻塞,直到建立连接  返回值为BluetoothSocket对象可以管理连接,数据共享交互 第五个类为BluetoothClass:描述蓝牙设备的一般特征和功能

    2.4K100

    Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

    Android中的蓝牙 说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数字版本号作为蓝牙版本的区分了...正如知道了IP地址和端口号,就知道了怎么链接到目标网络服务器位置,知道了蓝牙设备的MAC地址和UUID也就能够确定到具体是哪一台蓝牙设备了,这两者合起来就是蓝牙的唯一身份标识。...最后,使用获取到的BluetoothDevice调用其方法connect()就建立了经典蓝牙设备之间的连接通道。 低功耗蓝牙:低功耗蓝牙则用了一种看起来比较怪异的方式建立连接。...如果使用智能手机作为测试平台,其硬件条件是,蓝牙得至少是低功耗蓝牙版本,然后安卓系统的话,至少得是Android 4.3以上系统才行,因为Google在Android 4.3以上才做了BLE主设备的支持...很多智能电视配的遥控器带有语音识别,需要用经典蓝牙才能传输声音 传大数据量的,用经典蓝牙: 如某些工控场景,使用Android或Linux主控,外挂蓝牙遥控设备的,可以使用经典蓝牙里的SPP协议

    6.6K21

    我是如何Hack掉一个机器人!

    在最开始的时候我想的连接方式是PIN码 + AT指令,结果发现我完全错了,BLE实际上更简单。 因此,我觉得有PIN码的存在,所以第一步就是抓包。...突然有一个瞬间,我意识到BLE是不需要PIN码的。我只需要找到对应的UUID,以及对应的Service就可以了。 现在,我可以写自己的应用了。...而依据write数据的代码,我们需要两个东西一个是设备的UUID,一个Characteristic。...一个蓝牙4.0的终端可以包含多个Service,一个Service可以包含多个Characteristic。 如,我们要发送和接收数据都需要有对应的Characteristic。...这个服务里包含了一个characteristic为2a00的属性,我们只需要通过1800这个Service UUID,以及characteristic 2a00就可以读取这个设备的Device Name

    1.2K100

    android开发之手机与单片机蓝牙模块通信

    之前两篇都是在说与手机的连接,连接方法,和主动配对连接,都是手机与手机的操作,做起来还是没问题的,但是最终的目的是与单片机的蓝牙模块的通信。...下面是到目前为止尝试的与单片机的通信方法,没有成功,但是从思路上来说没有问题,最大的问题是与单片机配对的时候,单片机的蓝牙模块的PIN配对码是写死的,固定为1234, 而手机这边连接配对都是自动生成的PIN...)这个方法和它的返回值,它是一个异步方法,会对其他蓝牙设备进行搜索,持续时间为12秒。...而EXTRA_CLASS中的BluetoothClass是搜索到的设备的类型,比如搜索到的是手机还是耳机或者其他,之后我会写一篇关于它的介绍。...所以,我就利用反射的原理,让设备自己提供UUID尝试。

    1.3K20

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

    角色 和 职责 (1) 四种角色 Android 设备 与 BLE 设备互动时, 设备的角色 和 职责 :  -- 中心设备 和 外围设备 : 这个角色体系适用于 BLE 连接....外围设备角色 发送广播. -- GATT 服务器 和 GATT 客户端 : 这个决定了两个设备之间, 一旦建议连接后, 如何进行互相通信. (2) 中心设备 和 外围设备 BLE 连接需要两种设备都存在...: 为了理解其中的区别, 想象一下 你有一个 Android 设备 和 一个激活的 智能腕表 蓝牙设备....如果智能腕表 想要从手机上接受更新数据, 那么 Android 手机就是 GATT 服务器. -- 手机 和 设备 都可以作为 GATT 服务器 和 客户端 : 在本文档中使用的示例代码, 在 Android...设备扫描类型 : 蓝牙设备扫描 在同一个时间扫描时, 只能扫描 BLE 设备 或者 SPP 设备中的一种, 不能同时扫描两种设备. 7.

    8.1K30

    Rokid AI 眼镜远程协作应用一线互联开发实践:设备发现与 BLE 扫描

    你周围不止一副蓝牙设备掏出手机扫一下蓝牙,列表里几十个设备。耳机、手环、车间里的蓝牙网关、隔壁工位的手机——Rokid AI 眼镜就混在里面。...问题是,眼镜的 BLE 广播名有时候是空的,有时候显示为乱码,你不能只靠名字来认。我们把扫描过滤做成了两级:第一级是 Android 系统层的 BLE 扫描配置。...每个扫描结果进来,我们会检查设备名和 Service UUID 是否匹配 Rokid 眼镜的特征。...普通蓝牙耳机、音箱用的是经典蓝牙 SPP/A2DP profile,配对完系统就记住了。...但 Rokid 眼镜的视频流和控制指令走的是 CXR 私有协议通道,底层虽然也是蓝牙传输,但连接建立逻辑完全不一样。打个比方:普通蓝牙设备像是标准快递,手机操作系统认识这个快递单,帮你签收了。

    7710

    App Inventor 2 低功耗蓝牙(BLE) 硬件接入、数据通信及IO控制

    BLE与经典蓝牙的区别可参考:《低功耗蓝牙(BLE) 和 经典蓝牙(SPP) 的区别》。...1、硬件接线(特别注意:VCC 3.3v 或 5v 请参阅说明书,不要弄错以免烧坏硬件)一般来说,需要接线的端口有以下4个,无论哪款蓝牙硬件,也无论哪种其他硬件,这4个端口都是基本的存在:VCC(正极)...使用厂商自带的测试App进行通信测试:电脑端串口工具查看通信数据:AT控制指令除了上面的数据透传之外,一般硬件还支持内部的控制指令(如设置连接密码、查询硬件地址、主模式连接其他蓝牙等)。...BLE设备角色主要分为两种角色,主机(Master或Central)和从机(Peripheral),当主机和从机建立连接之后才能相互收发数据主机,主机可以发起对从机的扫描连接。...蓝牙App开发示例demo参考界面如下:扫描蓝牙设备,代码如下:扫描完成后,设备列表展示到“列表显示框”组件中:点击列表中的目标设备(一般硬件文档会有说明,名称会有特别的标识),连接蓝牙设备的代码如下:

    2.5K10

    Android 蓝牙开发(1)

    普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。...使用 Bluetooth API Android 应用可以执行下面的操作: 扫描其他蓝牙设备 查询本地蓝牙适配器的配对蓝牙设备 建立 RFCOMM 通道 通过服务发现连接到其他设备 与其他设备进行双向数据传输...管理多个连接 传统蓝牙适用于电池使用强度较大的操作,例如 Android 设备之间的流传输和通信等。...基础知识 使用 Android Bluetooth API 来完成使用蓝牙进行通信的四项主要任务:设置蓝牙、查找局部区域内的配对设备或可用设备、连接设备,以及在设备之间传输数据。...总结: 关于普通蓝牙设备和普通蓝牙设备之间的连接通信 通过 BluetoothAdapter 的 getDefaultAdapter 方法获取系统唯一的蓝牙适配器(如果返回为 null 则说明此设备不支持蓝牙

    3.7K01

    基于stm32蓝牙智能小车设计

    控制小车的转动模式通过蓝牙模块来实现,利用手机蓝牙助手和蓝牙模块相通,进而控制小车的各种运转模式。...代码、蓝牙Android apk地址:https://github.com/daohewang/Bluetooth-intelligent-car 整体框架: 下面的图把核心连接部分都画出来了(其他部分按要求接就可以了...不过这里要注意的是,IN1和IN2是控制左电机的,IN3和IN4是控制右电机。因为这里我用来驱动电机的是L298N。...支持蓝牙 SPP 串口协议,内置 PCB 天线,支持 UART 接口,蓝牙 Class 2,数据传输比 BLE 蓝牙快、可达到几十 K 每秒以上的速率。如图3.2所示。...3 、 VCC 3.3V 电源 4 、 GND 电源地 Android蓝牙助手已经包含到代码代码里了,直接下载即可。

    2K71

    Android低功耗蓝牙BLE开发小结

    BLE及相关协议 BLE是蓝牙4.0标准的一部分,旨在解决传统蓝牙连接慢、能耗大的问题,Google在Android 4.3(API 18)中引入了对BLE的支持。...服务由特征(Characteristic)或对其他服务的引用组成。特征包括一种类型(用UUID表示),一个值,一组指示特征支持操作的属性和一组与安全性有关的权限。...Android BLE相关类 BluetoothAdapter:Android设备的蓝牙适配器,可执行基本的蓝牙任务,如启动、停止设备发现,查询已配对设备,获取蓝牙适配器状态,使用MAC地址实例化蓝牙设备类...BluetoothGattDescriptor:蓝牙GATT描述,用于描述特征的属性。 各类之间的关系如下图所示(略去了每个方法的参数)。...在小米5的测试结果为:仅匹配一个16bit的UUID时可得到设备,其他情况(a. 多个16bitUUID; b. 一个16bit UUID和一个128bit UUID; c.

    6.9K561

    CCS 2019论文解读:基于自动化App分析的BLE设备指纹识别

    图 1 IoT应用Kinsa反编译代码片段 除了硬编码的数据值之外,部分应用所使用的UUID值是通过一些运算得到的,针对这个问题,BLESCOPE采用了程序切片(Program Slicing)和值集分析...BLESCOPE在模拟执行过程中,记录每一次蓝牙API调用的对象实例与参数之间的关系,并将这个关系转化为输出的树状结构中的一条边。...这样我们就得到了一个服务UUID和一个属性UUID的对应关系。依此类推,我们就能获取一个应用调用的所有BLE设备的UUID与它们的层级结构。...作者使用树莓派和一根高增益天线,在大约1.28平方英里(约合3.3平方公里,与北大校园大小接近)的区域内对蓝牙设备广播进行探测。...但UUID不会变化的根本问题,算是协议层面的脆弱点,至少在可见的未来,不太好得到解决了。

    2.1K10
    领券