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

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

一. BluetoothDevice简介

1. 继承关系

public static Class BluetoothDevice extends Object implement Parcelable

该类实现了Parcelable接口, 实现了Parcelable接口的类的对象可以封装到Parcel对象中, 封装后的数据可以通过Intent或者IPC传递;




实现Parcelable接口要点 :


a. 实现writeTpParcl()方法 : 将数据写入到Parcel对象中;



public void writeToParcel(Parcel out, int arg1) 
{ 
     // TODO Auto-generated method stub 
     out.writeBundle(this.mBundle); 
}

b. 实现describeContents()方法 :



public int describeContents() 
{ 
        // TODO Auto-generated method stub 
        return 0; 
}

c.实现Parcelable.Creator接口 :



public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { 
        public TrainInfo createFromParcel(Parcel in) 
        { 
            SampleBean ti=new SampleBean(); 
            ti.mBundle=in.readBundle(); 
            return ti; 
        }
        public SampleBean[] newArray(int size) 
        { 
            return new SampleBean[size]; 
        } 
};



2. 该类简介



BluetoothDevice对象代表了一个远程的蓝牙设备, 通过这个类可以查询远程设备的物理地址, 名称, 连接状态等信息;




对这个类的操作, 会执行在远程蓝牙设备的硬件上.




对象获取途径 :


a. 调用BluetoothAdapter的getRemoteDevice(address)方法获取物理地址对应的该类对象;


b. 调用BluetoothAdapter的getBoundedDevices()方法, 可以获取已经配对的蓝牙设备集合;




3. 需要权限




android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作;


android.permission.BLUETOOTH_ADMIN : 允许程序发现和配对蓝牙设备, 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作;




优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提, 如果没有BLUETOOTH权限, 就不能使用BLUETOOTH_ADMIN权限;



二 API详解



1. 常量介绍



广播的小规律 : 根据广播的名称可以猜测广播的类型, 如果广播常量名称后面带着ED, 是过去时, 那么这个广播是需要注册接收的广播, 如ACTION_DISCOVERY_STARTED, 这是蓝牙设备开始搜索发出的广播;


如果广播常量名称不是ED结尾的, 那么这个是可以自己发送的广播, 例如蓝牙开启广播 : ACTION_REQUEST_ENABLE(蓝牙可用), ACTION_REQUEST_DISCOVERABLE(蓝牙可见);




低级连接与高级连接 : ACL连接是低级连接, RFCOMM, L2CAP等连接是高级连接; 高级别的连接基于低级别的连接;




(1)ACL连接相关广播常量



ACL连接 : 该连接是一种低级别的连接, ACL连接通过Android蓝牙栈自动进行管理;




String ACTION_ACL_CONNECTED : android.bluetooth.device.action.ACL_CONNECTED,与远程设备建立了ACL连接发出的广播, 包含EXTRA_DEVICE附加域, 该附加域中存放的是BluetoothDevice对象, 需要BLUETOOTH权限;




String ACTION_ACL_DISCONNECTED : android.bluetooth.device.action.ACL_DISCONNECTED,与远程设备断开ACL连接后发出的广播, 包含EXTRA_DEVICE附加域, 需要BLUETOOTH权限;




String ACTION_ACL_DISCONNECT_REQUESTED : android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED, 底层发出断开连接请求,ACL连接即将断开; 友好的断开连接时都会发出这个广播, 低级连接即将断开的时候, 应该马上中断高级连接; 需要BLUETOOTH权限;


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