1. 概述
Bluetooth 是几乎现在每部手机标准配备的功能,多用于耳机 mic 等设备与手机的连接,除此之外,还可以多部手机之间建立 bluetooth 通信,本文就通过 SDK 中带的一个聊天室的例程,来介绍一下 Android 上的 Bluetooth 的开发。
在 Android1.x 的时候,相关 API 非常不完善,还不能简单的使用 Bluetooth 开发,有一个开源项目可以帮助程序员使用、开发蓝牙,支持直接方法bluetooth 协议栈。在 Android2 以后,框架提供了一些官方 API 来进行蓝牙的通信,但目前的程序也比较不完善。本文主要讨论 Android2 后的Bluetooth 通信的 API 使用方法。
首先看聊天室的效果图:
2. Bluetooth 通信 API 介绍2.1. Bluetooth 通信过程
2.2. Bluetooth API 的主要方法
BluetoothAdapter 类
BluetoothAdapter.getDefaultAdapter() :得到本地默认的 Blue共模电感toothAdapter ,若返回为 null 则表示本地不支持蓝牙;
isDiscovering() :返回设备是否正在发现周围蓝牙设备;
cancelDiscovery() :取消正在发现远程蓝牙设备的过程;
startDiscovery() :开始发现过程;
getScanMode() :得到本地蓝牙设备的 Scan Mode ;
getBondedDevices() :得到已配对的设备;
isEnabled() :蓝牙功能是否启用。
当发现蓝牙功能未启用时,如下调用设置启用蓝牙:
if (! mBluetoothAdapter .isEnabled()) {
Intent enableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE );
startActivityForResult(enableIntent, REQUEST_ENABLE_BT );
}
复制代码
如果发现当前设备没有打开对外可见模式,则传递 Intent 来调用打开可发现模式,代码如下:
Intent discoverableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_DISCOVERABLE ); discoverableIntent.putExtra(BluetoothAdapter. EXTRA_DISCOVERABLE_DURATION , 300);
startActivity(discoverableIntent);
复制代码
BluetoothDevice 类,此为对应的远程蓝牙 Device
createRfcommSocketTo可调电感ServiceRecord() :创建该 Device 的 socket 。
BluetoothSocket 类
connect() :请求连接蓝牙。
getInputStream() :得到输入流,用于接收远程方信息。
getOutputStream() :得到输出流,发送给远程方的信息。
close() :关闭蓝牙连接。
InputStream 类:
read(byte[]) :以阻塞方式读取输入流。
OutputStream 类:
write(byte[]) :将信息写入该输出流,发送给远程。
3. BluetoothChat 例程分析
Google 提供的关于 Bluetooth 开发的例程为 Bluetoothchat ,使用截图可见本文一开始。除去配置及 ui 定义等文件,主程序文件共三个:BluetoothChat.java 、 BluetoothChatService.java 以及 DeviceListActivity.java ,详细功能可见下面的描述。
3.1. 整体调用关系序列图
3.2. BluetoothChat.java
例程的主 Activity 。 onCreate() 得到本地 BluetoothAdapter 设备,检查是否支持。 onStart() 中检查是否启用蓝牙,并请求启用,然后执行 setupChat()。 setupChat() 中先对界面中的控件进行初始化增加点击1等,然创建 BluetoothChatService 对象,该对象在整个应用过程中存在,并执行蓝牙连接建立、消息发送接受等实际的行为。
3.3. BluetoothChatService.java
public synchronized void start() :
开启 mAcceptThread 线程,由于样例程序是仅 2 人的聊天过程,故之前先检测 mConnectThread 和 mConnectedThread 是否运行,运行则先退出这些线程。
public synchronized void connect(BluetoothDevice device) :
取消 CONNECTING 和 CONNECTED 状态下的相关线程,然后运行新的 mConnectThread 线程。
public synchronized void connected(BluetoothSocket socke电感器厂家t, BluetoothDevice device) : 扁平型电感
开启一个 ConnectedThread 来管理对应的当前连接。之前先取消任意现存的 mConnectThread 、 mConne插件电感ctedThread 、 mAcceptThread 线程,然后开启新 mConnectedThread ,传入当前刚刚接受的 socket 连接。最后通过 Handler 来通知 UI 连接 OK 。
1
7、可调电感器 常用的可调功率电感器有半导体收音机用振荡线圈、电视机用行振荡线圈、行线性线圈、中频陷波线圈、音响用频率补偿线圈、阻波线圈等,如下图所示。可调电感器1).半导体收音机用振荡线圈 此振荡 接收单电池供电的LED驱动器正受到广泛关注。为由低电压电源产生能够点亮白光LED的高电压,主要需要某种电子振荡器,最简单的为压电蜂鸣 器。压电转换器特殊地用于振荡器和驱动白光LED(图1)。压电模片或 变压器的损耗是如何形成的?简介:变压器的损耗是当变压器的初级绕组通电后,线圈所产生的磁通在铁芯流动,因为铁芯本身也是导体,在垂直于磁力线的平面上就会感应电势,这个电势在铁芯的断面上形成闭合回路并产生电
上一篇: 大功率LED封装散热设计的方法介绍
下一篇:功率电感器
1/2 1 2 下一页 尾页 |