Android提供蓝牙API来执行这些不同的操作:
扫描其他蓝牙设备
工作流程
首先两个设备上都要有蓝牙设备或者专业一点叫蓝牙适配器,以手机和电脑为例我画了如下流程图。其次在手机上进行扫描,扫描周围蓝蓝牙设备,先找到手机附近的电脑,然后给它发出一个信号需要进行蓝牙的配对,再次返回一个信号说明手机和电脑已经配对成功了,最后配对成功后可以进行文件传输了。这是一个最基本的一个流程。
蓝牙API分析
Android提供蓝牙API来执行这些不同的操作:
扫描其他蓝牙设备
获取配对设备列表
连接到通过服务发现其他设备
Android所有关于蓝牙开发的类都在android.bluetooth包下,如下图,只有8个类:
但是我们需要用到的就三个而已:BluetoothAdapter、BluetoothDevice、BluetoothServerSocket和BluetoothSocket,下面分别讲解。
BluetoothAdapter
顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都需要不断操作BluetoothAdapter里的很多方法,常用的有以下几个:
getDefaultAdapter()—静态方法,获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdapter
getName()—获取本地蓝牙名称
getAddress()—获取本地蓝牙地址
getState()—获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)
getRemoteDevice(String address)—根据蓝牙地址获取远程蓝牙设备
startDiscovery()—开始搜索,这是搜索的第一步
cancelDiscovery()—取消搜索,也就是说当我们正在搜索设备的时候调用这个方法将不再继续搜索
isDiscovering()—判断当前是否正在查找设备,是返回true
enable()—打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候我们需要问下用户是否打开,以下这两行代码同样是打开蓝牙,不过会提示用户:
Intent enabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);1212
disable()—关闭蓝牙
isEnabled()—判断蓝牙是否打开,已打开返回true,否则,返回false
listenUsingRfcommWithServiceRecord(String name,UUID uuid)—根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步
开发实战
首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限:
获取配对设备列表
连接到通过服务发现其他设备
Android所有关于蓝牙开发的类都在android.bluetooth包下,如下图,只有8个类:
但是我们需要用到的就三个而已:BluetoothAdapter、BluetoothDevice、BluetoothServerSocket和BluetoothSocket,下面分别讲解。
BluetoothAdapter
顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都需要不断操作BluetoothAdapter里的很多方法,常用的有以下几个:
getDefaultAdapter()—静态方法,获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdapter
getName()—获取本地蓝牙名称
getAddress()—获取本地蓝牙地址
getState()—获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)
getRemoteDevice(String address)—根据蓝牙地址获取远程蓝牙设备
startDiscovery()—开始搜索,这是搜索的第一步
cancelDiscovery()—取消搜索,也就是说当我们正在搜索设备的时候调用这个方法将不再继续搜索
isDiscovering()—判断当前是否正在查找设备,是返回true
enable()—打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候我们需要问下用户是否打开,以下这两行代码同样是打开蓝牙,不过会提示用户:
Intent enabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);1212
disable()—关闭蓝牙
isEnabled()—判断蓝牙是否打开,已打开返回true,否则,返回false
listenUsingRfcommWithServiceRecord(String name,UUID uuid)—根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步。
就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
来源: