最近做蓝牙4.0相关项目的时候遇到了很多的问题,所以在此记录并总结一下。
问题总结说明
1、首先使用蓝牙必须先打开设备的蓝牙,android为我们提供了两种打开方式,强制打开和非强制打开,如下:
/**
* 强制打开蓝牙
*/
fun openBluetooth(): Boolean = mBluetoothAdapter!!.enable()
强制打开:这种打开方式在绝大多数手机上是可以直接打开用户的蓝牙的,不会给用户弹框提示;但是有少部分手机还是会弹出提示框,要用户允许后才会打开蓝牙。这种方式太过于流氓,所以我们一般都是使用的非强制打开方式。
注意:使用上面的方法打开的蓝牙是异步的,它会立即给你返回,但是从 off 到 on 的过程需要一个时间,所以只能通过系统broadcast发出的intent里的state判断蓝牙是否已经打开。
/**
* 非强制打开蓝牙
*/
val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, 101)
非强制打开:这种方式会弹框提示用户,用户点击允许后才会打开蓝牙。在实际