【Android 应用开发】BluetoothDevice详解(二)

简介: 【Android 应用开发】BluetoothDevice详解(二)

(2)远程设备的其它广播常量



String ACTION_BOND_STATE_CHANGED : android.bluetooth.device.action.BOND_STATE_CHANGED, 远程蓝牙设备状态改变的时候发出这个广播, 例如设备被匹配, 或者解除配对; 该广播包含的附加域有 : EXTRA_DEVICE, EXTRA_BOND_STATE, EXTRA_BOND_PREVIOUS_STATE; 需要BLUETOOTH权限;




String ACTION_CLASS_CHANGED : android.bluetooth.device.action.CLASS_CHANGED, 一个远程设备的绑定状态发生改变时发出广播, 该广播附加域有 EXTRA_DEVICE, EXTRA_BOND_STATE; 需要BLUETOOTH权限;




String ACTION_FOUND : android.bluetooth.device.action.FOUND,发现一个远程设备的时候发出该广播; 这个广播总是包含EXTRA_DEVICE, EXTRA_CLASS附加域, 如果这个蓝牙可用的话, 还会包含EXTRA_NAME, EXTRA_RSSI附加域; 需要BLUETOOTH权限;




String ACTION_NAME_CHANGED : android.bluetooth.device.action.NAME_CHANGED,远程蓝牙设备的名称被发现改变 或者 第一次发现远程蓝牙设备的名称的时候发出该广播, 该广播包含附加域 EXTRA_DEVICE , EXTRA_NAME附加域; 需要BLUETOOTH权限;




(3)绑定状态常量



已绑定 : intBOND_BONDED , 值为12; 远程设备已经匹配; 本地存储了一个该远程设备的共享连接, 本地设备和远程设备之间的通信可以被认证和加密; 这个连接不是已经连接成功, 时刻保持连接状态, 这个连接的作用是, 下次连接的时候不用再次建立新的蓝牙连接;




绑定中 : intBOND_BONDING, 值为11; 本地设备与远程设备正在匹配中;



未匹配 : intBOND_NONE, 值为10; 本地设备与远程设备没有连接, 本地不存在与远程设备共享的连接, 设备间的通信不能被认证和加密;




(4)附加域常量



绑定状态 : StringEXTRA_BOND_STATE, int附加域, 值为android.bluetooth.device.extra.BOND_STATE, 这个附加域是ACTION_BOND_STATE_CHANGED的附加域, 可能的值为 BOND_BONDED, BOND_BONDING, BOND_NONE;




上一个绑定状态 : StringACTION_PREVIOUS_BOND_STATE, int附加域, 存放远程设备绑定状态, 值为"android.bluetooth.device.extra.PREVIOUS_BOND_STATE", 该附加域是ACTION_BOND_STATE_CHANGED广播的附加域;




BluetoothClass : StringEXTRA_CLASS, Parcelable BluetoothClass附加域, 存放BluetoothClass对象; 值为android.bluetooth.device.extra.CLASS, 这个附加域是ACTION_FOUND , ACTION_CLASS_CHANGED 广播的附加域;




BluetoothDevice : StringEXTRA_DEVICE, Parcelable BluetoothDevice附加域, 存放BluetoothDevice对象, 值为"android.bluetooth.device.extra.DEVICE",  几乎该类中的每个广播都有该附加域;




蓝牙名称 : StringEXTRA_NAME, 蓝牙名称附加域, 存放蓝牙名称, 值为"android.bluetooth.device.extra.NAME", 这个附加域是ACTION_NAME_CHANGED , ACTION_FOUND广播的附加域;




信号强度 : StringEXTRA_RSSI, 短整型附加域, 存放远程设备信号强度值; 值为"android.bluetooth.device.extra.NAME";




2. 公共方法介绍



(1)封装到Parcel方法


public void writeToParcel (Parcel out, int flags)

作用 : 将对象写出到Parcel对象中, 这是实现的Parcelable接口的方法

参数 : out , 要封装到的目的对象; flags , 对象如何被写入的附加标志;




(2)描述内容


public int describeContents ()

作用 : 实现Parcelable接口;




(2)建立BluetoothSocket连接

public int describeContents ()



作用 : 创建BluetoothSocket连接对象, 该方法创建的BluetoothSocket连接对象与 BluetoothAdapter的listenUsingRfcommWithServiceRecord方法创建的BluetoothServerSocket连接是对应的, 调用BluetoothSocket对象的connect()方法创建一个连接, 通过UUID执行对应信道的SDP查找动作;




如果两个安卓手机之间进行连接需要生成专用的UUID, 如果是对蓝牙串口进行连接, 就使用总所周知的SPP UUID 00001101-0000-1000-8000-00805F9B34FB




参数 : 用来识别远程蓝牙设备的UUID, 该UUID用来查询RFCOMM通道的服务记录;


返回值 : 创建的BluetoothSocket连接对象


目录
相关文章
|
16天前
|
安全 Java Android开发
探索iOS与Android应用开发的异同
【6月更文挑战第6天】随着智能手机的普及,移动应用开发已成为技术行业的热点。本文将深入探讨iOS和Android两大主流平台在应用开发过程中的不同之处,包括开发环境、编程语言、用户界面设计、市场策略以及安全性等方面的差异,旨在为开发者提供全面的指导和参考。
17 6
|
22天前
|
安全 Java Android开发
使用Kotlin进行Android应用开发:高效、简洁与乐趣并存
【6月更文挑战第1天】Kotlin,JetBrains开发的静态类型语言,正日益成为Android开发首选。它与Java兼容,提供简洁、安全的语法,如空安全、扩展函数和Lambda表达式,提升开发效率和代码可读性。Kotlin在Android开发中的优势包括提高开发速度、降低学习曲线及强大的社区支持。实践中,数据类简化对象创建,扩展函数增强SDK,Lambda表达式简化回调处理,协程优化异步操作。掌握Kotlin对Android开发者极具价值。
|
1天前
|
前端开发 JavaScript 测试技术
安卓应用开发中的架构模式解析
【6月更文挑战第21天】在软件开发领域,架构模式是设计优雅、高效、可维护应用程序的基石。本文深入探讨了安卓应用开发中常见的架构模式,包括MVC、MVP、MVVM和Clean Architecture,旨在为开发者提供一个清晰的指导,帮助他们选择最适合自己项目的架构风格。通过对比分析这些架构模式的特点、优势以及适用场景,文章揭示了如何根据项目需求和团队能力来采用恰当的架构模式,以实现代码的可维护性、可扩展性和可测试性。
18 7
|
2天前
|
编解码 Android开发 iOS开发
探索iOS与安卓应用开发的差异性与交互设计哲学
在移动应用开发的广阔天地中,iOS和安卓这两大操作系统不仅塑造了市场的双雄争霸格局,更在开发者社区内激发了关于“最佳实践”的热烈讨论。本文将深入探讨这两个平台在技术架构、用户界面设计以及市场策略上的根本差异,揭示它们如何影响应用的性能、用户体验和商业成功。通过比较分析,我们将展现每个平台的独特优势,并为开发者提供战略性建议,以便在不同生态系统中实现最大化的产品潜力和用户满意度。
|
3天前
|
设计模式 安全 前端开发
探索Android应用开发的最佳实践
【6月更文挑战第19天】在这篇文章中,我们将深入探讨Android应用开发的最佳实践。从设计模式的选择到性能优化的技巧,我们将一一解析如何构建高效、可维护且用户友好的Android应用。无论你是新手还是经验丰富的开发者,这篇文章都将为你提供有价值的见解和实用的建议。让我们一起探索Android应用开发的奥秘吧!
11 4
|
5天前
|
人工智能 安全 Android开发
探索安卓应用开发的未来趋势
【6月更文挑战第17天】随着技术的不断进步和用户需求的日益多样化,安卓应用开发领域正迎来前所未有的变革。本文将深入探讨影响安卓开发未来的几大关键因素,包括新技术的融合、用户体验的优化、安全性的提升以及跨平台开发的流行趋势,旨在为开发者提供行业洞察并激发创新灵感。
|
4天前
|
安全 Android开发 数据安全/隐私保护
探索安卓应用开发的未来趋势
【6月更文挑战第18天】随着科技的不断进步,安卓应用开发领域也在不断演变。本文将探讨安卓应用开发的最新趋势,包括新技术的引入、设计哲学的变化以及安全性的增强。我们将从技术革新的角度出发,深入分析这些变化如何影响开发者和用户,并预测未来可能的发展方向。通过这篇文章,读者将获得对安卓应用开发未来趋势的全面了解。
|
5天前
|
安全 开发工具 Android开发
探索Android应用开发的最佳实践
在这篇文章中,我们将深入探讨开发高效、稳定且用户友好的Android应用所需的关键实践。通过分析最新的开发工具和技术,本文旨在为开发者提供实用的建议和策略,以提升他们的应用性能和用户体验。
|
4天前
|
API 开发工具 Android开发
安卓应用开发的新趋势与挑战
随着移动技术的不断进步,安卓平台正迎来一系列创新的开发工具和框架。本文将深入探讨这些新工具如何简化开发流程、提高应用性能,并分析它们为开发者带来的挑战与机遇。我们将从多个角度审视安卓开发的当前状态,包括跨平台解决方案的流行度、Kotlin语言的崛起以及安卓系统新版本的特性。
|
8天前
|
IDE Java Android开发
探索iOS与安卓应用开发的差异
【6月更文挑战第14天】本文深入探讨了iOS和安卓两大移动操作系统在应用开发方面的不同之处,包括开发环境、编程语言、用户界面设计以及市场策略等关键因素。通过比较分析,旨在为开发者提供全面的视角,以便更好地理解各自平台的特定需求和优势。