Eclipse 开发环境中Android 应用程序获取蓝牙设备过程研究与实现

2014-01-20 03:24
扬州职业大学学报 2014年4期
关键词:适配器蓝牙应用程序

徐 丽 仙

(扬州职业大学,江苏 扬州 225009)

物联网技术的应用与普及正在我国蓬勃兴起,互联技术作为物联网技术的核心,在物和物之间进行信息通讯。无线互联技术如3G、4G、蓝牙、无线局域网(WLAN)、红外技术等由于其方便、快捷和灵活等特点,出现在物联网应用中。这些技术都有各自的优势特点,蓝牙技术应用于低功耗、低成本、近距离无线数据传输,采用全球统一的频段设定,更加灵活地提供物与物间的信息通信[1]。因此,在基于Android 操作系统的应用程序中,利用设备中的蓝牙模块实现数据交互功能,其应用领域包括文件传输、工业控制、智能家用电器等。

1 Eclipse 开发环境的搭建

系统开发环境采用的是Eclipse 所提供的框架服务[2]。它是一个开放源码,基于Java 设计语言构建的可扩展性平台。为了能够满足开发需求,必须对其环境进行配置。

1.1 安装JDK

JDK 即Java Development Kit,是Java 程序运行的基础,提供了Java 运行环境、工具和基础类等。

1.2 安装ADT

ADT 即Android Development Tools,它在Eclipse 环境下,为开发人员提供基于Android 操作系统进行程序开发的工具服务,如开发工具的升级下载等。

1.3 安装SDK

SDK 即Software Development Kit,是基于Android 开发工具包集合的特定软件包。提供了运行程序要求的库文件、所需环境和开发工具。该工具已提供给开发人员,开发人员根据需要到Google 官方网站下载相应版本并进行安装。

2 蓝牙基本相关类

在Android SDK 包中含有多个与蓝牙操作相关的API 接口类,其主要作用见表1。

表1 蓝牙相关类及说明

其中BluetoothAdapter 类和BluetoothDevice类是实现蓝牙设备间建立通信机制的最主要类。

2.1 BluetoothAdapter 类

该类是代表本地蓝牙适配器的类,用于执行基本的蓝牙操作任务,如搜索并发现设备,查询已配对设备,通过获得的MAC 地址实例化蓝牙设备,同时创建BluetoothServerSocket,用于监听其它设备的连接请求[3]。

一般通过调用静态的getdefaultadapter()方法来获得BluetoothAdapter 表示的本地蓝牙适配器;然后通过getbondeddevices()方法得到一组已配对的蓝牙设备;使用startDiscovery()方法搜索蓝牙设备;或创建bluetoothserversocke 用于监听新的连接请求。但是这些方法基本都需要得到BLUETOOTH 或BLUETOOTH-ADMIN 许 可 才 能实现,这就必须要在相应文件中进行相关声明。

2.2 BluetoothDevice 类

该类代表的是远程蓝牙设备,同时也需要得到蓝牙许可。BluetoothDevice 类可创建设备并可查询如名称、地址、类和连接状态等相关信息。通过创建BluetoothDevice 的BluetoothAdapter 对象,用于实现对远程蓝牙设备地址的操作。

当使用BluetoothAdapter 获得蓝牙设备后,通常采用getRemoteDevice()方法创建一个已知MAC 地址的代表设备,也可从BluetoothAdapter和getBondedDevices()方法返回的已绑定的设备中得到它。最后使用createRfcommSocketToServiceRecord(UUID)方法建立与远程设备通信的BluetoothSocket。

3 过程及实现

3.1 权限申明

在Eclipse 开发环境中,利用蓝牙相关的类实现蓝牙功能,首先必须在Eclipse 的AndroidManifest.xml 配置文件中进行授权声明,否则不能完成后面的相应操作[4]。声明代码如下:

3.2 获取以配对蓝牙设备

当两个蓝牙设备进行手动配对成功后,在应用程序中获取已配对的对方蓝牙设备名称,其主要过程有四个步骤,见图1。

为了能够在应用程序中通过事件触发程序运行,在项目的XML 布局文件添加一个按钮控件,添加其id 为searchBluetoothButton,Text。

属性设置为“开始扫描蓝牙设备”。并且要在Activity[5]的Java 文件的OnCreate()方法中得到该按钮(该方法在Activity 第一次调用时就会被创建),并通过调用ButtonListener 监听器类的功能与监听器进行绑定。ButtonListener 类就是用来实现已配对蓝牙设备获取功能的。最后就可在监听器类中实现蓝牙设备的获取。

图1 设备获取过程

获取按钮和绑定监听器代码如下:

ButtonListener 类继承于父类OnClickListener,过程在该类的onClick 方法中实现。

用方法getDefaultAdapter()得到BluetoothAdapter 对象并命名为Btadapter。该对象是指应用程序所运行的本机的蓝牙设备。由于该API 支持多个本地蓝牙设备,而当前Android 系统只能支持一个,所以只能返回一个默认的蓝牙适配器。当本地拥有时则返回默认蓝牙适配器,如硬件平台不支持时返回值为空。

如返回不为null,通过isEnable()判断蓝牙设备是否可用,返回true 表示可用。接着创建一个Intent 对象,启动用于提示并允许用户开启蓝牙设备的Activity (ACTION-REQUEST-ENABLE)。

获取所有与本地蓝牙适配器已配对(绑定)的远程蓝牙适配器,并放入set 集合中。当出现错误时则返回null。

使用迭代器的next()方法依次获取远程蓝牙设备的地址,以便对蓝牙设备进行相关操作。在本例中为了能够更加直观地得到所获取的地址,在程序中将所有地址进行了输出处理。

4 结论

蓝牙设备地址的获取是建立蓝牙通信的前提和基础,本文主要研究了生成BluetoothAdapter 对象,蓝牙设备扫描,判断和开启蓝牙设备,获取对方蓝牙设备地址等过程。并在Eclipse 开发环境下,使用Android SDK 中提供的相关类实现此功能。为以Eclipse 平台进行Android 系统开发的人员,在更多与蓝牙应用相关的开发中提供一些实际参考。

[1] 鲍晓娟,曹树伟.蓝牙技术浅析[J].赤峰学院学报:自然科学版,2013(24):21 -22.

[2] 焦健.Eclipse 下Android 环境的搭建[J].信息与电脑:理论版,2012(6):33 -34.

[3] 陈志崇,张祺.基于Android 的蓝牙通信接口[J].电子世界,2013(6):16 -17.

[4] 冯艳红,何加铭.基于Android 蓝牙技术的健康服务系统设计[J].无线电通信技术,2014(1):61 -64.

[5] 张晶. 基于Android 环境的应用程序开发与研究[J].硅谷,2012(7):80 -81.

猜你喜欢
适配器蓝牙应用程序
蓝牙音箱的直线之美
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于3D打印的轻型导弹适配器
潜空导弹垂直发射出筒适配器受载变形仿真研究
电源适配器怎么选
美国麦格普公司新型M—LOK相机三脚架适配器
蓝牙4.0落地加速