android开发之经典蓝牙安卓平台包括支持蓝牙网络协议栈,它允许设备与其他蓝牙设备进行无线交换数据。 应用程序框架提供通过安卓蓝牙接口访问蓝牙功能。 这些应用程序的无线连接到其他蓝牙设备,使点对点和多点的无线功能。
使用蓝牙接口,安卓应用程序可以执行以下:本文档介绍了如何使用经典蓝牙。 经典蓝牙是更为正确的选择,更多的电池密集的操作,如流媒体和通信之间的安卓设备。 对于低功耗的蓝牙设备,安卓4.3(原料药18)对蓝牙低能量的支持。 要了解更多,见蓝牙低能量。
- 扫描其他蓝牙设备
- 查询本地蓝牙适配器,用于配对蓝牙设备
- 建立RFCOMM通道
- 通过服务发现连接到其他设备
- 向其他设备传送数据
- 管理多个连接
基础
本文档介绍了如何使用安卓的蓝牙接口来完成四个主要任务所需的通信使用蓝牙:设置蓝牙,寻找设备,无论是配对或可在本地区,连接设备,设备之间传输数据。
所有的蓝牙API可在android.bluetooth包。这里的类和接口,您将需要创建蓝牙连接的总结:
具体流程:
BluetoothAdapter:表示本地蓝牙适配器(蓝牙收音机)。对于任务是所有蓝牙互动的切入点。利用这一点,你会发现其他的蓝牙设备,查询列表(配对)保税设备,实例化一个蓝牙设备使用一个已知的MAC地址,并创建一个bluetoothserversocket听来自其他设备的通信。
BluetoothDevice
:表示远程蓝牙设备。使用此请求与远程设备的连接通过一个BluetoothSocket或查询有关的装置,如名称、地址、类别信息,并结合状态。BluetoothSocket:
代表一个蓝牙套接字接口(类似于TCP套接字)。这是连接点,允许一个应用程序与另一个蓝牙设备通过InputStream和OutputStream交换数据BluetoothServerSocket
:代表一个打开服务器套接字侦听传入的请求(类似于一个TCP ServerSocket)。为了连接2个安卓设备,一个设备必须打开一个与这个类的服务器套接字。当一个远程蓝牙设备进行连接请求的这种装置的bluetoothserversocket将返回一个BluetoothSocket连接时连接被接受BluetoothClass
:描述蓝牙设备的一般特性和功能。这是一组只读的属性,定义设备的主要和次要设备类及其服务。然而,这并不能可靠地描述设备所支持的所有蓝牙配置文件和服务,但对设备类型的提示是有用的BluetoothProfile
:表示蓝牙配置文件的接口。蓝牙配置文件是一种基于蓝牙的设备之间的无线接口规范。一个例子是双手自由配置文件。对于配置文件的更多讨论,请参见使用配置文件BluetoothHeadset
:提供了对蓝牙耳机的支持。这包括蓝牙耳机和免提(V1.5)简介。BluetoothA2dp
:定义如何高质量的音频可以从一个设备传输到另一个蓝牙连接。”A2DP”代表先进的音频分布。BluetoothHealth
:表示控制蓝牙服务的健康设备配置文件代理。BluetoothHealthCallback
:一个抽象类,您使用来实现bluetoothhealth回调。您必须扩展这个类并实现回调方法以接收应用程序注册状态和蓝牙信道状态的变化的更新。BluetoothHealthAppConfiguration
:表示蓝牙健康第三方应用程序注册与远程蓝牙健康设备通信的应用程序配置。BluetoothProfile.ServiceListener
:一个界面,通知bluetoothprofile IPC客户当他们已连接或断开了与服务(即内部服务运行一个特定的配置文件)。
(1)流程图
(2).具体实例
1.蓝牙权限
为了在您的应用程序中使用蓝牙功能,您必须声明蓝牙允许蓝牙。您需要此权限来执行任何蓝牙通信,例如请求连接、接受连接和传输数据。
如果你想让你的应用启动设备发现或操纵蓝牙设置,你也必须申报bluetooth_admin许可。大多数应用程序都需要这个权限,完全可以发现本地蓝牙设备的能力。除非该应用程序是一个“电源管理器”,在用户请求上修改蓝牙设置,否则无法使用该权限授予的其他能力。注意:如果你使用bluetooth_admin许可,那么你也必须有蓝牙许可。
在应用程序清单文件中声明蓝牙权限。例如:
2.设置蓝牙:
在您的应用程序可以通过蓝牙进行通信之前,您需要验证设备上是否有蓝牙支持,如果是这样,确保它被启用。
如果不支持蓝牙,那么你应该优雅地禁用蓝牙功能。如果支持蓝牙,但禁用了,那么你可以请求用户启用蓝牙而不留你的应用程序。这个设置是在两个步骤来完成,使用蓝牙适配器。
2.1.获得蓝牙适配器蓝牙适配器是任何和所有蓝牙活性所必需的。要获得蓝牙适配器就要调用静态方法getdefaultadapter()。这将返回一个BluetoothAdapter表示设备的蓝牙适配器(蓝牙无线电)。整个系统有一个蓝牙适配器,您的应用程序可以使用这个对象进行交互。如果getdefaultadapter()返回null,则该设备不支持蓝牙和你的故事在这里结束。例如:
2.2启用蓝牙:
接下来,您需要确保启用蓝牙。电话isenabled()检查蓝牙目前是否启用。如果该方法返回假,则禁用蓝牙。要求蓝牙启用,电话startactivityforresult()与action_request_enable动作意图。这将发出一个请求,使蓝牙通过系统设置(不停止您的应用程序)。例如:
android蓝牙开发之经典蓝牙
本文介绍了Android平台上的经典蓝牙开发,包括扫描设备、查询本地蓝牙适配器、建立RFCOMM通道、连接管理以及数据传输。讲解了如何启用蓝牙、发现设备、连接设备,特别强调了连接作为服务器和客户端的流程,以及数据传输的处理。还提及了蓝牙权限的声明和设备发现的注意事项。
摘要由CSDN通过智能技术生成