Android BluetoothGatt 类中的 clientIf 字段

2023-12-31

Android BluetoothGatt.class has mClientIf私人领域。大多数与 BLE 事件相关的日志消息都包含此值。例如:

onClientRegistered() - 状态=0 clientIf=17

什么是mClientIf场代表?什么是integer这个字段的值告诉?


mClientf is a scannerId从蓝牙扫描仪,

如果您深入研究BluetoothGatt和BluetoothLeScanner的源代码,您可以找到以下内容:

mBluetoothGatt.unregisterClient(scannerId);方法实现于

GattService.java unregisterClient(int clientIf)


蓝牙LeScanner.java

...
/**
 * Application interface registered - app is ready to go
 */
@Override
public void onScannerRegistered(int status, int scannerId) {
    Log.d(TAG, "onScannerRegistered() - status=" + status +
            " scannerId=" + scannerId + " mScannerId=" + mScannerId);
    synchronized (this) {
        if (status == BluetoothGatt.GATT_SUCCESS) {
            try {
                if (mScannerId == -1) {
                    // Registration succeeds after timeout, unregister client.
                    mBluetoothGatt.unregisterClient(scannerId);
                } else {
                    mScannerId = scannerId;
                    mBluetoothGatt.startScan(mScannerId, mSettings, mFilters,
                            mResultStorages,
                            ActivityThread.currentOpPackageName());
                }
            } catch (RemoteException e) {
                Log.e(TAG, "fail to start le scan: " + e);
                mScannerId = -1;
            }
        } else {
            // registration failed
            mScannerId = -1;
        }
        notifyAll();
    }
}
...

GattService.java

...
/**
 * Unregister the current application and callbacks.
 */
private IBluetoothGatt mService;
.
.   
public void unregisterClient(int clientIf) {
    GattService service = getService();
    if (service == null) return;
    service.unregisterClient(clientIf);
}
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android BluetoothGatt 类中的 clientIf 字段 的相关文章

随机推荐

  • 将字符串转换为 PHP 中定义的常量

    假设我已经定义了常量ERROR 0如下 define ERROR 0 An error occurred 现在 假设我有字符串 ERROR 0 但我想将其转换为常量ERROR 0这样我就可以获得字符串 发生错误 我怎样才能做到这一点 Tha
  • Graphql 数据建模:扩展类型和接口

    这是一个非常基本的问题 但是如何调用扩展类型或接口 所有文档都指向使用extend type Person添加基于人员的字段 我希望它能像这样工作 Employee extend type Person salary Int 但文档表明它是
  • 垫菜单始终出现在页尾

    我实施了mat menu来自有角度的材料 菜单始终出现在页面末尾 代码如下 我尝试过设置z index和别的css属性 但菜单没有出现在原来应该出现的位置 HTML
  • 记录私有泛型类型的公共具体变体

    In 我的另一个问题 https stackoverflow com q 70102943 857390 我问如何只公开公开一个具体的变体 Foo
  • Sequelize 连接两个不关联的表

    我试图通过连接两个不使用关系 关联 的表来检索数据 这两个表如下 mysql gt desc partner txns Field Type Null Key Default Extra id int 11 NO PRI NULL auto
  • .NET 3.5 与 .NET 3.0

    我想在 WPF 中编写一个程序 但不确定应该以 net35 还是 net30 为目标 net35的优点是显而易见的 但是 我仍然看到 net30 的一个主要优势 它内置于 Vista 中 因此 使用 Windows Vista 的用户无需下
  • 使用 Trello API 创建新卡

    我正在尝试将新卡添加到 Trello 列表中 但有点卡住了 我尝试过两种方法发布 https api trello com 1 lists mylistid cards key mykey token myToken name myName
  • 将 FFMPEG 编码为 MPEG-DASH – 或使用关键帧簇的 WebM – 用于 MediaSource API

    我目前正在将视频流发送到 Chrome 以通过 MediaSource API 进行播放 据我了解 MediaSource 仅支持使用 MPEG DASH 编码的 MP4 文件 或具有以关键帧开头的簇的 WebM 文件 否则会引发错误 媒体
  • jmeter - 如何忽略 *jtl 文件中测量的选定采样器

    我的测试配置 循环控制器 gt Beanshell Sampler vars put test CSVRead test 0 Add it to an existing array retrieved from vars getObject
  • 如何让 Chrome 在新标签页中打开页面

    我只想在新选项卡中打开所有页面 是关于 chrome 还是我的代码 在格式化计算机之前 我可以使用此代码执行此操作 但现在第一个链接在新选项卡中打开 其他链接在新窗口中打开 我认为我的一些 chrome 选项坏了或者什么的 for var
  • 从 __m128i 中查找最小/最大值

    我想使用 SIMD 运算查找字节数组中的最小值 最大值 到目前为止 我能够遍历数组并将最小值 最大值存储到 m128i 变量中 但这意味着我正在查找的值混合在其他值中 确切地说是其他 15 个值 我找到了这些讨论here https sta
  • 如何在 .net Core 应用程序中使用 IConfiguration 绑定多级配置对象?

    我正在尝试绑定到应由 appsettings json 文件填充的自定义配置对象 我的应用程序设置看起来有点像 Logging IncludeScopes true LogLevel Default Debug System Informa
  • 如何在整个Windows操作系统中更改光标(图像)

    我需要在所有窗口中更改光标 而不仅仅是在应用程序中 我尝试过以下操作 this Cursor Cursors WaitCursor 和这个 System Windows Forms Cursor Current System Windows
  • 使用 Dagger 进行 Android 功能测试

    我正在尝试使用 Mockito 测试 Activity Dagger http square github com dagger 我已经能够在应用程序中向 Activity 注入依赖项 但是在测试 Activity 时 我无法向 Activ
  • Android应用程序包安装在手机上的哪里

    我在手机上安装了一个 Android 应用程序 该应用程序是我在 java 上自己创建的 该应用程序已成功安装在设备上 但我无法找到已安装的软件包 如何找到已安装应用程序的路径 您将在以下位置找到该应用程序文件夹 data data you
  • 在 Eclipse 中分析项目时出现 NPE (SonarQube 5.2)

    我从 SonarQube 5 1 2 更新到 5 2 在 Eclipse 中 我使用最新插件版本开始使用 SonarQube 进行分析 但会弹出一个对话框 提示存在 NPE Eclipse 错误日志显示 java lang NullPoin
  • 如何使用 PrimeFaces 按钮在新窗口中打开任意 URL

    我有以下输出链接可以完成其工作
  • 在 Android Studio 中使用新名称复制现有项目

    我想复制我的 Android 项目并从相同的文件创建一个新项目 只是名称不同 这样做的目的是让我可以拥有我的应用程序的第二个版本 该版本在应用程序商店中支持广告 我在这里找到了这个答案 Android 使用新名称复制现有项目 https s
  • PHP 脚本可以在收到所有 POST 数据之前启动吗?

    我在 Apache 下运行 PHP 我想将 POST 数据缓慢发送到页面 该页面将在 POST 数据到达时将消息写入数据库 我正在使用 NET 应用程序发送数据WebRequest我已经设置了SendChunked为真 不幸的是 看起来 P
  • Android BluetoothGatt 类中的 clientIf 字段

    Android BluetoothGatt class has mClientIf私人领域 大多数与 BLE 事件相关的日志消息都包含此值 例如 onClientRegistered 状态 0 clientIf 17 什么是mClientI