一起Talk Android吧(第二百八十三回:Android中的BLE开发:蓝牙扫描设备三)

看官们,我们在上一章回中介绍了BLE开发中蓝牙扫描设备的例子,本章回中我们继续介绍该例子,闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们查看官方的API手册时手册时就会发现startLeScan方法已经被弃用了,官方提示如下:

This method was deprecated in API level 21. use
BluetoothLeScanner#startScan(List, ScanSettings, ScanCallback) instead.

不过我在Android10上试用后发现,它还可以正常使用。不过我们最好还是依据官方的建议,换用BluetoothLeScanner类的startScan方法来扫描设备;下面是该方法的原型:

public void startScan (List<ScanFilter> filters, ScanSettings settings, ScanCallback callback)

目前官方文档中没有给出该方法的使用示例,大家可以参考我们在下面代码中的示例:

   private void searchBLEDeviceWithScanner(boolean enable) {
        if(mScaning)
            return;

        if(mScanner == null) {
            mScanner = mBluetoothAdapter.getBluetoothLeScanner();
        }

        if(enable) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    if(mScaning) {
                        mScanner.stopScan(mScanCallback);
                        mScaning = false;
                    }
                }
            }, 10000);
            mScaning = true;
            List<ScanFilter> filters = new ArrayList<ScanFilter>();
            //这里使用的SEARCH_SERVICE_UUID可以向蓝牙芯片厂商获取
            filters.add(0, new ScanFilter.Builder().setServiceUuid(new ParcelUuid(UUID.fromString(SEARCH_SERVICE_UUID))).build());

            ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
            mScanner.startScan(filters,settings,mScanCallback);
        } else {
            mScaning = false;
            mScanner.stopScan(mScanCallback);
        }
    }

该方法的设计方式也是回调方式,就是说该方法只负责扫描工作,扫描后的结果在回调函数中,也就是该方法的第三个参数。该方法中的三个参数对我们来说都是新的,我们在后面的章回中再做详细介绍。

各位看官,关于Android中蓝牙扫描设备的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值