当前位置: 首页 > 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)
  • 如何提高网站打开速度/河南今日头条新闻最新
  • 美橙网站/爱站seo
  • 代理什么产品好做挣钱/seo服务工程
  • 徐州做网站最好的公司/整站seo优化哪家好
  • 网站设计描述/代运营竞价公司
  • 网站建设几大技巧/百度热搜的含义