Android Bluetooth | 经典蓝牙设备扫描源码分析

        好厚米们,我来了!

        这次分享的是经典蓝牙设备执行扫描动作时源码的执行流程。

        先来了解下“经典蓝牙设备”和“低功耗蓝牙设备”的概念 。(ps:因为扫描有两种方式,分别适合不同类型的设备)

        经典蓝牙设备:是指采用蓝牙标准2.0及以上版本,支持传输速率为1Mdps的传统蓝牙设备。这类设备通常需要较高的功耗,用于数据传输范围较小且需要高带宽的应用,例如音频传输,文件传输等。常见的经典蓝牙设备有:蓝牙耳机蓝牙音箱蓝牙打印机蓝牙键盘蓝牙鼠标

        低功耗蓝牙设备:是指采用蓝牙标准4.0及以上版本,支持传输速率1Mdps ~ 2Mdps的低功耗蓝牙设备。这些设备通常需要较低的功耗,用于数据传输范围比较小且需要低带宽的应用。常见的低功耗蓝牙设备有:智能手环智能门锁

         下面来说下应用层是如何使用蓝牙扫描功能的。

        第一种就是使用ScanCallback的回调:

        代码如下,这种方式更适用于“低功耗蓝牙设备”扫描状态的监听(源码我就不深究了,简单介绍下):

//声明BluetoothLeScanner 
private BluetoothLeScanner scanner =BluetoothAdapter.getDefaultAdapter().getBluetoothLeScanner();

   ScanCallback scanCallback = new ScanCallback() {
            @Override
            public void onScanResult(int callbackType, ScanResult result) {
                super.onScanResult(callbackType, result);
                // 处理扫描到的设备信息
            }
            @Override
            public void onScanFailed(int errorCode) {
                super.onScanFailed(errorCode);
                // 扫描失败处理
            }
        };
        // 开始扫描
        if (scanner != null) {
            ScanSettings settings = new ScanSettings.Builder()
                    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
                    .build();
            // 添加过滤条件
            List<ScanFilter> filters = new ArrayList<>();
            //权限检查
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) {
                // TODO: Consider calling
                //    ActivityCompat#requestPermissions
                // here to request the missing permissions, and then overriding
                //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                //                                          int[] grantResults)
                // to handle the case where the user grants the permission. See the documentation
                // for ActivityCompat#requestPermissions for more details.
                return;
            }
            scanner.startScan(filters, settings, scanCallback);
        }
            // 停止
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值