Android BLE简介及连接、收发数据

本文详细介绍了经典蓝牙与低功耗蓝牙(BLE)的特点和应用场景。经典蓝牙适用于高数据量传输如语音和音乐,而BLE适合实时性要求高但数据速率低的设备如鼠标和传感器。蓝牙4.0支持单模(BLE)和双模(经典蓝牙+BLE)。代码示例展示了如何在Android中进行蓝牙设备的扫描、连接和数据交互。注意,BLE与经典蓝牙不兼容,且断开连接时需调用close()方法以避免重连问题。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

知识点:

经典蓝牙(Classic Bluetooth)& 低功耗蓝牙(Bluetooth Low Energy)

  • 经典蓝牙可以用与数据量比较大的传输,如语音,音乐,较高数据量传输等。

  • BLE 特点就如其名,功耗更低的同时,对数据包做出了限制。所以适用于实时性要求比较高,但是数据速率比较低的产品,如鼠标,键盘,传感设备的数据发送等。

蓝牙 4.0 支持单模和双模两种部署方式,其中单模即是我们说的 BLE,而双模指的是 Classic Bluetooth + BLE 。
实际上,BLE 和经典蓝牙的使用等各方面都像是没有关联的两个东西,甚至因为 BLE 的通讯机制不同,所以是不能向下兼容的;经典蓝牙则可以兼容到蓝牙 3.0 / 2.1。


参考 :https://www.jianshu.com/p/634b4f7154bc

(本篇文章很全,也有代码,可以参考)

开发代码:

权限:

<uses-permission android:name="android.permission.BLUETOOTH" />

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

广播接收者,用于接收蓝牙广播:

class BluetoothReceive(bleListener: BleListener) : BroadcastReceiver() {

    private val mBleListener: BleListener = bleListener

    override fun onReceive(context: Context?, intent: Intent) {
        val action = intent.action
        if (action == BluetoothDevice.ACTION_FOUND) {
            val device =
                intent.getParcelableExtra<BluetoothDevice>(BluetoothDevice.EXTRA_DEVICE)
            val ssi = intent.extras!!.getShort(BluetoothDevice.EXTRA_RSSI)
            val deviceClass = device!!.bluetoothClass.majorDeviceClass
            mBleListener.onBleScanListener(device, deviceClass, ssi)
        } else if (action == BluetoothAdapter.ACTION_DISCOVERY_FINISHED) {
            mBleListener.onScanFinish()
        }
    }
}

回调:

interface BleListener {

    /**
     * BLE设备回调
     * @para

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值