预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Android蓝牙通信基本介绍 蓝牙是一种支持设备短距离通信(一般10m内,且无阻隔媒介)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑等众多设备之间进行无线信息交换。利用"蓝牙"技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与Internet之间的通信,这样数据传输变得更加迅速高效,为无线通信拓宽道路。 在Android手机平台中,只到Android2.0才引入蓝牙接口。在开发时,需要真机测试,如果需要数据传输,还需要两台机器,另外蓝牙需要硬件支持,但一般的智能手机上都会有这方面的支持,特别是Android系统的手机。 主要相关类介绍 BluetoothAdapter BluetoothAdapter是一个非常重要的适配类,它包含打开蓝牙、关闭蓝牙、蓝牙状态、搜索蓝牙等重要方法。 getDefaultAdapter得到默认蓝牙适配器 getRemoteDevice得到指定蓝牙的BluetoothDevice isEnabled蓝牙是否开启 getState得到蓝牙状态 Enable/Disable打开/关闭蓝牙 getAddress得到蓝牙适配器地址 getName/setName得到/设置蓝牙的名字 getScanMode/setScanMode得到/设置当前蓝牙的扫描模式 startDiscovery/cancelDiscovery开始/取消搜索蓝牙设备 isDiscovering是否允许被搜索 getBondedDevices得到BluetoothDevice集合到本地适配器 listenUsingRfcommWithServiceRecord创建一个监听,安全记录蓝牙RFCOMM蓝牙套接字 checkBluetoothAddress检查蓝牙地址是否正确开发 Android操作蓝牙主要就是打开蓝牙、关闭蓝牙、搜索蓝牙、蓝牙客户端、蓝牙服务器等。蓝牙客户端、服务器和Socket基础差不多,但蓝牙中是用BluetoothSocket和BluetoothServerSocket两个类来操作。 1.权限设定 正式开发Android蓝牙时,需要在Android项目中的AndroidManifest.xml中添加对应权限: <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permissionandroid:name=“android.permission.BLUETOOTH”/>2.检查蓝牙是否可用 blueAdapter=BluetoothAdapter.getDefaultAdapter(); if(blueAdapter==null){…} 3.打开蓝牙 if(blueAdapter.getState()==BluetoothAdapter.STATE_OFF){ //打开系统的蓝牙设置面板 //Intentintent=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE); //startActivityForResult(intent,0x1); blueAdapter.enable();//直接打开蓝牙 //blueAdapter.disable();//关闭蓝牙 }//STATE_OFF-->STATE_TURNING_ON-->STATE_ON-->TATE_TURNING_OFF 4.设置可检测性 if(bluetoothAdapter.getScanMode()!=BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE){ Intentintent=newIntent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300); startActivity(intent); } 基于安全性考虑,设置开启可被搜索后,Android系统就会默认给出120秒的时间,其他远程设备在这120秒内可以搜索到它。5.搜索蓝牙设备 使用BluetoothAdapter的startDiscovery()方法来搜索蓝牙设备,startDiscovery()方法是一个异步方法,调用后会立即返回。该方法会进行对其他蓝牙设备的搜索,该过程会持续12秒。该方法调用后,搜索过程实际上是在一个SystemService中进行的,所以可以调用cancelDiscovery()方法来停