Android AOSP - android源代码中扫描间隔和扫描窗口的定义

HRG*_*HRG 5 android android-source bluetooth-lowenergy

我已经下载了Lollipop 5.0的AOSP源代码.在api级别21中,在蓝牙低能量扫描设置下,有三种扫描设备的选项 - SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER.是基于不同的扫描间隔和扫描窗口值?如果是这样,我在哪里可以找到源代码目录中为这些宏定义的值.

小智 7

我发现下面的值http://androidxref.com/5.0.0_r2/xref/packages/apps/Bluetooth/src/com/android/bluetooth/gatt/ScanManager.java而greping关键字"SCAN_MODE_BALANCED":

    /**
     * Scan params corresponding to regular scan setting
     */
    private static final int SCAN_MODE_LOW_POWER_WINDOW_MS = 500;
    private static final int SCAN_MODE_LOW_POWER_INTERVAL_MS = 5000;
    private static final int SCAN_MODE_BALANCED_WINDOW_MS = 2000;
    private static final int SCAN_MODE_BALANCED_INTERVAL_MS = 5000;
    private static final int SCAN_MODE_LOW_LATENCY_WINDOW_MS = 5000;
    private static final int SCAN_MODE_LOW_LATENCY_INTERVAL_MS = 5000;

    /**
     * Scan params corresponding to batch scan setting
     */
    private static final int SCAN_MODE_BATCH_LOW_POWER_WINDOW_MS = 1500;
    private static final int SCAN_MODE_BATCH_LOW_POWER_INTERVAL_MS = 150000;
    private static final int SCAN_MODE_BATCH_BALANCED_WINDOW_MS = 1500;
    private static final int SCAN_MODE_BATCH_BALANCED_INTERVAL_MS = 15000;
    private static final int SCAN_MODE_BATCH_LOW_LATENCY_WINDOW_MS = 1500;
    private static final int SCAN_MODE_BATCH_LOW_LATENCY_INTERVAL_MS = 5000;
Run Code Online (Sandbox Code Playgroud)

另请查看ScanManager.ScanNative.configureRegularScanParams().两个参数scanWindowscanInterval根据所述扫描设置(设置ScanSettings.SCAN_MODE_LOW_POWER,ScanSettings.SCAN_MODE_BALANCED,ScanSettings.SCAN_MODE_LOW_LATENCY),换算成BLE单位,然后传递给gattSetScanParametersNative().

希望这可以帮助.

  • 如果我说我将 ScanSettings 设置为 SCAN_MODE_LOW_LATENCY 到底是什么意思?它是否说它每 5 秒扫描一次,持续 5 秒,然后再次开始扫描 - 我不认为是这种情况,因为我有一个应用程序,其更新速度比每 5 秒更快。您能详细解释一下这些值吗? (3认同)