Bluetooth程序设计(二)传统蓝牙.ppt

上传人:王** 文档编号:168904 上传时间:2023-03-10 格式:PPT 页数:27 大小:299.50KB
下载 相关 举报
Bluetooth程序设计(二)传统蓝牙.ppt_第1页
第1页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第2页
第2页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第3页
第3页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第4页
第4页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第5页
第5页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第6页
第6页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第7页
第7页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第8页
第8页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第9页
第9页 / 共27页
Bluetooth程序设计(二)传统蓝牙.ppt_第10页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Bluetooth程序设计(二)传统蓝牙.ppt》由会员分享,可在线阅读,更多相关《Bluetooth程序设计(二)传统蓝牙.ppt(27页珍藏版)》请在优知文库上搜索。

1、p1 1、检查上次作业、检查上次作业p2 2、检查预习题目、检查预习题目p3 3、上次课程的总结、上次课程的总结p4 4、BluetoothBluetooth的应用实现的应用实现p5 5、应用示例、应用示例p6 6、本次课的作业、本次课的作业p7 7、下次预习及课后需要上交的文档、下次预习及课后需要上交的文档1 1、上次课的作业、上次课的作业 p编写一个能与蓝牙串口模块进行字符传输软件。能在蓝牙连接建立好后,利用BluetoothSocket来进行数据传输。p1 1、检查上次作业、检查上次作业p2 2、检查预习题目、检查预习题目p3 3、上次课程的总结、上次课程的总结p4 4、Bluetoot

2、hBluetooth的应用实现的应用实现p5 5、应用示例、应用示例p6 6、本次课的作业、本次课的作业p7 7、下次预习及课后需要上交的文档、下次预习及课后需要上交的文档2 2、上次课预习内容、上次课预习内容1.1.androidandroid中与蓝牙设备扫描和连接建立相关的类和方法中与蓝牙设备扫描和连接建立相关的类和方法p1 1、检查上次作业、检查上次作业p2 2、检查预习题目、检查预习题目p3 3、上次课程的总结、上次课程的总结p4 4、BluetoothBluetooth的应用实现的应用实现p5 5、应用示例、应用示例p6 6、本次课的作业、本次课的作业p7 7、下次预习及课后需要上交

3、的文档、下次预习及课后需要上交的文档3 3、Android.bluetoothAndroid.bluetooth包包pAndroidAndroid平台提供了一个平台提供了一个android.bluetoothandroid.bluetooth的包的包, ,里面有蓝牙里面有蓝牙APIAPI去实现蓝牙设备之间的通信去实现蓝牙设备之间的通信, ,只有只有8个类。常用的四个类个类。常用的四个类:nBluetoothAdapterBluetoothAdapter类:代表了一个本地的蓝牙适配器。它是所有蓝牙交类:代表了一个本地的蓝牙适配器。它是所有蓝牙交互的入口点。利用它你可以发现其他蓝牙设备,查询绑定了

4、的设备,使互的入口点。利用它你可以发现其他蓝牙设备,查询绑定了的设备,使用已知的用已知的MACMAC地址实例化一个蓝牙设备和建立一个地址实例化一个蓝牙设备和建立一个BluetoothServerSocketBluetoothServerSocket(作为服务器端)来监听来自其他设备的连接。(作为服务器端)来监听来自其他设备的连接。nBluetoothDeviceBluetoothDevice类:代表了一个远端的蓝牙设备,使用它请求远端蓝类:代表了一个远端的蓝牙设备,使用它请求远端蓝牙设备连接或者获取远端蓝牙设备的名称、地址、种类和绑定状态(其牙设备连接或者获取远端蓝牙设备的名称、地址、种类和绑

5、定状态(其信息是封装在信息是封装在BluetoothSocketBluetoothSocket中)。中)。nBluetoothSocketBluetoothSocket类:代表了一个蓝牙套接字的接口(类似于类:代表了一个蓝牙套接字的接口(类似于TCPTCP中的套中的套接字),它是应用程序通过输入、输出流与其他蓝牙设备通信的连接点。接字),它是应用程序通过输入、输出流与其他蓝牙设备通信的连接点。nBlueboothServerSocketBlueboothServerSocket类:代表打开服务连接来监听可能到来的连接类:代表打开服务连接来监听可能到来的连接请求(属于请求(属于serverser

6、ver端),为了连接两个蓝牙设备必须有一个设备作为服端),为了连接两个蓝牙设备必须有一个设备作为服务器打开一个服务套接字。当远端设备发起连接连接请求的时候,并且务器打开一个服务套接字。当远端设备发起连接连接请求的时候,并且已经连接到了的时候,已经连接到了的时候,BlueboothServerSocketBlueboothServerSocket类将会返回一个类将会返回一个BluetoothSocketBluetoothSocket。p1 1、检查上次作业、检查上次作业p2 2、检查预习题目、检查预习题目p3 3、上次课程的总结、上次课程的总结p4 4、BluetoothBluetooth的应用

7、实现的应用实现p5 5、应用示例、应用示例p6 6、本次课的作业、本次课的作业p7 7、下次预习及课后需要上交的文档、下次预习及课后需要上交的文档4 4、BluetoothBluetooth的应用实现的应用实现p蓝牙设备之间的通信主要包括了四个步骤:蓝牙设备之间的通信主要包括了四个步骤:n设置蓝牙设备设置蓝牙设备n寻找局域网内可能或者匹配的设备寻找局域网内可能或者匹配的设备n连接设备连接设备n设备之间的数据传输设备之间的数据传输p具体编程实现具体编程实现n1. 1. 启动蓝牙功能启动蓝牙功能 2. 2. 查找设备查找设备n3. 3. 查询匹配好的设备查询匹配好的设备 4. 4. 扫描设备扫描设

8、备n5. 5. 使能被发现使能被发现 6. 6. 连接设备连接设备n7. 7. 服务端的连接服务端的连接 8. 8. 客户端的连接客户端的连接n9. 9. 管理连接管理连接 10. 10. 权限设置权限设置1. 1. 启动蓝牙功能启动蓝牙功能p首先通过调用静态方法首先通过调用静态方法getDefaultAdapter()getDefaultAdapter()获取蓝牙适配器获取蓝牙适配器BluetoothAdapterBluetoothAdapter,如果返回为空,则无法继续执行了。例如:,如果返回为空,则无法继续执行了。例如:BluetoothAdapter mBluetoothAdapter

9、 = BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter = null) if (mBluetoothAdapter = null) / Device does not support Bluetooth / Device does not support Bluetooth p其次,调用其次,调用isEnabled()isEnabled()来查询当前蓝牙设备的状态,如果返回为来查

10、询当前蓝牙设备的状态,如果返回为falsefalse,则表示蓝牙设备没有开启,接下来你需要封装一个则表示蓝牙设备没有开启,接下来你需要封装一个ACTION_REQUEST_ENABLEACTION_REQUEST_ENABLE请求到请求到intentintent里面,调用里面,调用startActivityForResult()startActivityForResult()方法使能蓝牙设备,方法使能蓝牙设备,例如:例如: if (!mBluetoothAdapter.isEnabled() if (!mBluetoothAdapter.isEnabled() Intent enableBtI

11、ntent = new Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 2. 2. 查找设备查找设备p使用使用BluetoothAdapterBluetoothAd

12、apter类里的方法,你可以查找远端设备(大概十米以内)类里的方法,你可以查找远端设备(大概十米以内)或者查询在你手机上已经匹配(或者说绑定)的其他设备了。当然需要确或者查询在你手机上已经匹配(或者说绑定)的其他设备了。当然需要确定对方蓝牙设备已经开启或者已经开启了定对方蓝牙设备已经开启或者已经开启了“被发现使能被发现使能”功能(对方设备功能(对方设备是可以被发现的是你能够发起连接的前提条件)。如果该设备是可以被发是可以被发现的是你能够发起连接的前提条件)。如果该设备是可以被发现的,会反馈回来一些对方的设备信息,比如名字、现的,会反馈回来一些对方的设备信息,比如名字、MACMAC地址等,利用这

13、些地址等,利用这些信息,你的设备就可以选择去向对方初始化一个连接。信息,你的设备就可以选择去向对方初始化一个连接。p如果你是第一次与该设备连接,那么一个配对的请求就会自动的显示给用如果你是第一次与该设备连接,那么一个配对的请求就会自动的显示给用户。当设备配对好之后,他的一些基本信息(主要是名字和户。当设备配对好之后,他的一些基本信息(主要是名字和MACMAC)被保存下)被保存下来并可以使用蓝牙的来并可以使用蓝牙的APIAPI来读取。使用已知的来读取。使用已知的MACMAC地址就可以对远端的蓝牙地址就可以对远端的蓝牙设备发起连接请求。设备发起连接请求。p匹配好的设备和连接上的设备的不同点:匹配好

14、只是说明对方设备发现了匹配好的设备和连接上的设备的不同点:匹配好只是说明对方设备发现了你的存在,并拥有一个共同的识别码,并且可以连接。连接上:表示当前你的存在,并拥有一个共同的识别码,并且可以连接。连接上:表示当前设备共享一个设备共享一个RFCOMMRFCOMM信道并且两者之间可以交换数据。也就是是说蓝牙设信道并且两者之间可以交换数据。也就是是说蓝牙设备在建立备在建立RFCOMMRFCOMM信道之前,必须是已经配对好了的。信道之前,必须是已经配对好了的。 3. 3. 查询匹配好的设备查询匹配好的设备p在建立连接之前你必须先查询配对好了的蓝牙设备集以便选取一个在建立连接之前你必须先查询配对好了的

15、蓝牙设备集以便选取一个设备进行通信,例如你可以你可以查询所有配对的蓝牙设备,并使设备进行通信,例如你可以你可以查询所有配对的蓝牙设备,并使用一个数组适配器将其打印显示出来:用一个数组适配器将其打印显示出来: Set pairedDevices = Set pairedDevices = mBluetoothAdapter.getBondedDevices(); mBluetoothAdapter.getBondedDevices(); / If there are paired devices/ If there are paired devices if (pairedDevices.siz

16、e() 0) if (pairedDevices.size() 0) /Loop through paired devices/Loop through paired devices for (BluetoothDevice device : pairedDevices) for (BluetoothDevice device : pairedDevices) / Add the name and address to an array adapter to show in a ListView/ Add the name and address to an array adapter to show in a ListViewmArrayAdapter.add(device.getName() + n + device.getAddress();mArrayAdapter.add(device.getName() + n + device.getAddress(); p建立一个蓝牙连接只需要建立一个蓝牙连接只需要MACMAC地址就已经足够。地址就已经足够。 4. 4. 扫描设备扫描设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > Java

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!