android之手机蓝牙通信

学习b站中android蓝牙开发学习的体会
一、大致思路
需要两台手机,一台作为服务端,一台作为客户端。
1、客户端要进行的操作:

  • 1、搜索设备
  • 2、绑定设备
  • 3、创建socket
  • 4、连接服务端
  • 5、连接到服务端后开启线程时刻接受数据
  • 6、可选,发送数据
  • 7、最后关闭socket

2、服务端要做进行的操作:

  • 1、创建seversocket
  • 2、设置监听accept,看有无人连接
  • 3、若有设备连接了,开启线程时刻收数据
  • 4、可选,发送数据
  • 5、最后关闭socket

二、客户端
1、前期工作
①、创建BlueToothAdapter类,详细看源代码(下面有下载地址)
②、如何使用广播
首先,创建IntentFilter对象
之后,增加广播用IntenFilter的addAction方法
最后启动广播registerReceiver(BroadcastReceiver receiver,IntentFilter mFilter)
其中BroadcastReceiver类用接口的方法创建,里面有一个重构方法,用于接收广播后的处理
2、搜索广播
BlueToothAdapter类的startDiscovery()方法
使用startDiscovery方法后,系统会发送三条广播,开始查找,正在查找,结束查找,然后用广播接收这三条广播,在BroadcastReceiver的重构方法更新列表Listview
3、绑定设备
点击Listview列表想要绑定的Item
BluetoothDevice类的createBond()方法进行绑定
启动了creatBond()方法后也会传来一条广播
在广播内把该设备记录下来
4、点击绑定设备,创建socket
点击绑定设备的列表,创建socket(套接字,用于应用层向传输层的接口)
之后用socket类的方法connect()查找服务器
5、开启线程时刻接受数据
如果找到服务器了
即开启时刻接受数据
6、发送数据
点击相应的按钮,发送数据,接受方接受到的数据主要用 Toast发送,你自己可以用 别的方法
7、当想断开了
用socket的方法close()关闭
三、服务端
与客户端相识,就不说了,自己看代码
四、注意事项
1、需要的权限

//蓝牙权限
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
//安卓6.0以上搜索蓝牙需要开启地址权限
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

2、要想读懂,自己要知道Listview控件的用法和Handler线程(更新UI在线程里)和输入输出流
3、使用软件前,要先打开蓝牙和在手机授权管理授权定位权限
4、只用相同UUID的两台设备才能通信

五、代码
源代码,是B站的用户上传的,非本人,B站下端的评论有
b站地址

猜你喜欢

转载自blog.csdn.net/qq_42757083/article/details/105612986