Android蓝牙通信简单实例
Android 的蓝牙通信其实没你想的那么复杂。蓝牙的开启、搜索、配对到连接和数据传输,用一套流程下来就行了,主要靠BluetoothAdapter这个类撑场子。用getDefaultAdapter()
先拿到系统的蓝牙模块,enable()
一开,蓝牙就上工了。,别忘了先好权限,尤其是运行时动态权限,省得调半天不出结果。
搜索设备靠startDiscovery()
,注册个BroadcastReceiver监听ACTION_FOUND
广播。搜索结果里会带设备名、MAC 地址这些信息,你可以丢进列表给用户选。选中了,再用createBond()
搞个配对,配成功就能进下一步了。
连接的时候有两个角色:服务端和客户端。服务端要用listenUsingRfcommWithServiceRecord()
来搞个BluetoothServerSocket,并传入UUID;客户端则是createInsecureRfcommSocketToServiceRecord()
配合connect()
来连。连上后,就可以通过getOutputStream()
和getInputStream()
来做读写操作。
数据通信的时候建议你用字节流,比如发送字符串就先getBytes()
转成字节数组。响应也快,代码也简单。等用完了,记得close()
掉BluetoothSocket
,还得cancelDiscovery()
和disable()
,不然系统资源就浪费了。
嗯对了,项目里建议你加点错误和重连逻辑,蓝牙的稳定性有时候说变就变。另外通信最好加密一下,尤其是敏感数据,安全第一嘛。如果你想看更丰富的示例或参考,可以看看下面这几个链接:
如果你正准备写一个蓝牙连接的功能,不妨从这个例子下手,逻辑清楚,代码量也不大,蛮适合练手。
44.07MB
文件大小:
评论区