Android开发系列——实战篇12:蓝牙开发(一)(设备操作篇)

蓝牙是Android开发以及各种嵌入式系统相互通信的重要工具,本文开始深入理解Android开发中蓝牙的原理与操作方式。

一、蓝牙简介

蓝牙是一种短距离无线通信技术,我们比较熟知的移动端设备短距离通信技术有NFC、红外与蓝牙。它们都是无线技术标准,但是实际的应用场景各不相同。
NFC主要用于操作简单、即时响应的刷卡、红外主要用于需要按键控制、价格低廉的家电遥控,而蓝牙主要用于两部设备之间复杂且大量的数据传输。
下面这张图比较了三者技术参数之间的差别:

(注:图中蓝牙是以蓝牙2.0等旧代版本蓝牙为例,BLE——蓝牙4.0及以上新版本蓝牙通信距离<=100m,最大传输速度达3M/S,连接建立时间2s。)

二、蓝牙控制

1.蓝牙适配概述

蓝牙的基本使用流程为:

  • 初始化蓝牙
  • 打开蓝牙
  • 在范围内搜索可用蓝牙设备
  • 连接并绑定设备
  • 建立双端通信通道
  • 进行设备间数据的传输
  • 关闭蓝牙

蓝牙的操作分为很多步骤,大体上分为蓝牙设备的控制设备间数据的传输两大部分。这里先介绍蓝牙设备的控制步骤,包括初始化蓝牙,启用蓝牙,查找扫描设备,连接与绑定设备

Android提供了蓝牙模块的管理工具BluetoothAdapter(蓝牙适配器)。

BluetoothAdapter类的一些常用方法说明:

  • getDefaultAdapter:获取默认的蓝牙适配器,该方法为静态方法。(一个设备只有一个蓝牙适配器)
  • getState:获取蓝牙的开关状态。STATE_ON表示已开启,STATE_TURNING_ON表示正在开启,STATE_OFF表示已关闭,STATE_TURNING_OFF表示正在关闭。
  • enable:启用蓝牙功能。
  • disable:禁用蓝牙功能。
  • isEnable:判断蓝牙功能是否已启用。返回True表示已启用,返回false表示未启用。
  • getBondedDevices:获取已配对的设备集合。
  • getRomoteDevices:根据设备地址获取远程的设备对象。
  • startDiscovery: 开始搜索周围的蓝牙设备。
  • cancelDiscovery:取消搜索周围的蓝牙设备。
  • isDiscovering:判断是否正在搜索周围的蓝牙设备。

虽然BluetoothAdapter名叫蓝牙适配器,但它实际上干了蓝牙管理器的活。因为Android从4.3开始引入了正牌的蓝牙管理器BluetoothManager,调用BluetoothManager对象的getAdapter也可获得蓝牙适配器。(注意是4.3是Android版本。)

Android4.3对蓝牙的增强补充,主要是为了支持最新的BLE(蓝牙低功耗功能),BLE对应的是蓝牙4.0及以上的版本。
(注意这里的4.0是蓝牙版本。)

注:BLE是Bluetooth Low Energy,蓝牙低功耗。平时处于“非连接”状态,仅知晓对方。传输时开启线路,传输完毕迅速关闭线路。因此BLE与以前的蓝牙版本相比,更省电,连接速度更快,传输距离更远。

2.初始化蓝牙适配器

首先是对蓝牙适配器的初始化,在使用蓝牙之前,需要在AndroidManifest清单文件里声明相关的权限。

    <!-- 蓝牙操作权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <!-- 蓝牙配对权限-->
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

还有一些特殊情况的补充权限,可不加:

    <!--仅在支持BLE(蓝牙4.0及以上)的设备上运行-->
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值