Android蓝牙通信简单实例

Android 的蓝牙通信其实没你想的那么复杂。蓝牙的开启、搜索、配对到连接和数据传输,用一套流程下来就行了,主要靠BluetoothAdapter这个类撑场子。用getDefaultAdapter()先拿到系统的蓝牙模块,enable()一开,蓝牙就上工了。,别忘了先好权限,尤其是运行时动态权限,省得调半天不出结果。

搜索设备靠startDiscovery(),注册个BroadcastReceiver监听ACTION_FOUND广播。搜索结果里会带设备名、MAC 地址这些信息,你可以丢进列表给用户选。选中了,再用createBond()搞个配对,配成功就能进下一步了。

连接的时候有两个角色:服务端和客户端。服务端要用listenUsingRfcommWithServiceRecord()来搞个BluetoothServerSocket,并传入UUID;客户端则是createInsecureRfcommSocketToServiceRecord()配合connect()来连。连上后,就可以通过getOutputStream()getInputStream()来做读写操作。

数据通信的时候建议你用字节流,比如发送字符串就先getBytes()转成字节数组。响应也快,代码也简单。等用完了,记得close()BluetoothSocket,还得cancelDiscovery()disable(),不然系统资源就浪费了。

嗯对了,项目里建议你加点错误和重连逻辑,蓝牙的稳定性有时候说变就变。另外通信最好加密一下,尤其是敏感数据,安全第一嘛。如果你想看更丰富的示例或参考,可以看看下面这几个链接:

如果你正准备写一个蓝牙连接的功能,不妨从这个例子下手,逻辑清楚,代码量也不大,蛮适合练手。

zip 文件大小:44.07MB