热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android网络通信(6):蓝牙

参考链接:http:www.cnblogs.comqingblogarchive201206152550735.html接上一篇文章:Android网络

参考链接:http://www.cnblogs.com/qingblog/archive/2012/06/15/2550735.html

接上一篇文章:Android网络通信(5):WiFi。

第八部分 蓝牙
蓝牙是一种短距离的无线连接技术标准的代称,蓝牙的实质内容就是建立通用无线电空中接口及其控制软件的公开标准。
蓝牙采用分散式网络结构以及快调频和短包技术,支持点对点以及多对点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,其数据速率为1Mbps,采用时分双工传输方案。
蓝牙协议分4层:即核心协议层、电缆替代协议层、电话控制协议层、采纳其他的协议层。
Android 2.0 即API Level等级为5或以上版本才包含蓝牙功能。
蓝牙的类和接口位于android.bluetooth包中,有如下功能:
BluetoothAdapter 蓝牙适配器(代表本地蓝牙适配器)
BluetoothClass 蓝牙类(主要包括服务和设备)
BluetoothClass.Device 蓝牙设备类
BluetoothClass.Device.Major 蓝牙设备管理
BluetoothClass.Service 有关蓝牙服务的类
BluetoothDevice 蓝牙设备(主要指远程蓝牙设备)
BluetoothServerSocket 监听蓝牙连接的类
BluetoothSocket 蓝牙连接类
要使用蓝牙API必须要在AndroidManifest.xml中声明权限代码如下:
//API等级为5
//蓝牙权限
//蓝牙管理、操作
//读取联系人
要使用蓝牙必须先取得蓝牙适配器 代码如下:
BluetoothAdapter _bluetooth = BluetoothAdapter.getDefaultAdapter();//通过getDefaultAdapter()方法获取本地蓝牙适配器,要获取远程的用BluetoothDevice类。
如何打开、关闭本地蓝牙和如何才能使别的设备能够搜索到自己的设备?如下:
首先定义两个常量,分别代表请求打开和请求能够被搜索代码如下:
private static final int REQUEST_ENABLE;//请求打开蓝牙
private static final int REQUEST_DISCOVERABLE;//请求能够被搜索
1、请求开启蓝牙
Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);//请求系统允许用户打开蓝牙
startActivityForResult(enabler, REQUEST_ENABLE);
2、请求能够被搜索
Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);//请求系统允许蓝牙设备被搜索
startActivityForResult(enabler, REQUEST_DISCOVERABLE);
BluetoothAdapter类中其他动作常量
ACTION_DISCOVERY_FINISHED 已经完成搜索
ACTION_DISCOVERY_STARTED 已经开始搜索蓝牙设备
ACTION_LOCAL_NAME_CHANGED 更改蓝牙名字
ACTION_REQUEST_DISCOVERABLE 请求能够被搜索
ACTION_REQUEST_ENABLE 请求开启蓝牙
ACTION_SCAN_MODE_CHANGED 描述模式已改变
ACTION_STATE_CHANGED 状态已改变
3、打开蓝牙
_bluetooth.enable();//使用BluetoothAdapter类中的enable方法
4、关闭蓝牙
_bluetooth.disable();//使用BluetoothAdapter类中的diable方法
BluetoothAdapter中的常用方法
cancelDiscovery 取消当前设备搜索过程
checkBlutoothAddress 检测蓝牙地址是否正确。如"00:43:A8:23:10:F0"字母必须是大写
disable 关闭蓝牙适配器
enable 打开蓝牙适配器
getAddress 取得本地蓝牙的硬件适配器地址
getDefaultAdapter 得到默认的蓝牙适配器
getName 得到蓝牙的名字
getRemoteDevice 取得指定蓝牙硬件地址的BluetoothDevice对象
getScanMode 得到扫描模式
getState 得到状态
isDiscovering 是否允许被搜索
isEnabled 是否打开
setName 设置名字
startDiscovery 开始搜索
5、搜索蓝牙设备
搜索远程蓝牙设备需要使用BluetoothDevice类。
首先使用BluetoothAdapter类的getRemoteDevice方法来得到一个指定地址的BluetoothDevice
BluetoothDevice类实际是一个蓝牙硬件地址薄,该类对象是不可改变的。其操作都是远程蓝牙硬件地址使用BluetoothAdapter来创建一个BluetoothDevice对象。

代码下载链接:http://www.apkbus.com/android-116915-1-1.html

喜欢开源,乐意分享的大神们,欢迎加入QQ群:176507146,你值的拥有哦!



推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
author-avatar
我-是二毛控控控_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有