当前位置: 首页 > news >正文

Android BLE蓝牙扫描系统源码解析学习笔记

以下是用于记录本人学习中的分析Android BLE蓝牙扫描系统源码分析笔记:

我们从BluetoothLeScanner中的startScan开始分析

1,public void startScan(final ScanCallback callback) {
        startScan(null, new ScanSettings.Builder().build(), callback);
    }


2,private int startScan(List<ScanFilter> filters, ScanSettings settings,
            final WorkSource workSource, final ScanCallback callback,
            final PendingIntent callbackIntent,
            List<List<ResultStorageDescriptor>> resultStorages) {
        BluetoothLeUtils.checkAdapterStateOn(mBluetoothAdapter);
        if (callback == null && callbackIntent == null) {
            throw new IllegalArgumentException("callback is null");
        }
        if (settings == null) {
            throw new IllegalArgumentException("settings is null");
        }
        synchronized (mLeScanClients) {
        //这里是为了确保扫描回调和扫描操作是一一对应关系
            if (callback != null && mLeScanClients.containsKey(callback)) {
                return postCallbackErrorOrReturn(callback,
                            ScanC

相关文章:

  • 【Servlet】Servlet入门
  • php开发实战分析(11):mysql中使用update语句使用CASE WHEN
  • 【快捷部署】011_PostgreSQL(16)
  • Liunx进程信号
  • Tuxera NTFS for Mac2023绿色免费版 免费的ntfs for mac 免费读写硬盘U盘工具
  • Linux存储的基本管理
  • 什么是Redis数据一致性?如何解决?
  • 操作系统① —— 进程管理
  • 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分
  • 设计模式:工厂模式和抽象工厂模式的区别
  • 每日面经分享(pytest测试案例,接口断言,多并发断言)
  • 第16章 网络编程
  • Oracle 数据库工作中常用知识点:sql语法与常用函数
  • 第五章 即速运用
  • AD20全流程的使用笔记
  • 【随笔】Git 高级篇 -- 相对引用2(十三)
  • 微信小程序怎么制作?制作一个微信小程序需要多少钱?
  • vue3表单参数校验+正则表达式
  • elsint报错Delete `␍`eslintprettier/prettier
  • python面试题(36~50)
  • 国际著名学者Charles M. Lieber全职受聘清华深圳国际研究生院
  • “非思”的思想——探索失语者的思想史
  • 山西太原小区爆炸事故已造成17人受伤
  • 巴西外长维埃拉:国际形势日益复杂,金砖国家必须发挥核心作用
  • 83岁连丽如每周登台说书,还上了15堂连派评书课
  • 上海开花区域结果,这项田径大赛为文旅商体展联动提供新样本