Java 如何在android中设置BLE扫描间隔和windows no just choose模式?

Java 如何在android中设置BLE扫描间隔和windows no just choose模式?,java,android,bluetooth,beacon,Java,Android,Bluetooth,Beacon,我是一个机器人新手。我想在我的android设备中设置BLE扫描间隔和窗口,以便进行邻居发现的实验。我在谷歌上搜索答案,知道关于BLE扫描间隔和窗口有一些定义,如下所示 /** * 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_POW

我是一个机器人新手。我想在我的android设备中设置BLE扫描间隔和窗口,以便进行邻居发现的实验。我在谷歌上搜索答案,知道关于BLE扫描间隔和窗口有一些定义,如下所示

/**
 * 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;

如果我想更改这些值,这是否意味着我应该编译android系统?有更好的方法吗?

您可以自由控制等效的if扫描窗口,并通过启动和停止扫描在更高级别的代码中进行间隔。这正是开源使用其等效的可配置参数所做的:

 beaconManager.setForegroundScanPeriod(...);
 beaconManager.setForegroundBetweenScanPeriod(...);

你可以使用弃用的,自己控制一切。@MarkusKauppinen明白了。非常感谢你!我想是否有可能控制时间间隔?我只找到三种模式。或者这是一种只做一次广告的方式,这样我就可以控制广告的间隔。再次感谢你!这些模式与扫描无关,但您可能指的是
ScanSettings
。它们也只与新的扫描方式有关,使用旧的扫描方式,您可以决定扫描频率和扫描时间。只需用
startedscan
开始,然后用
stopLeScan
停止即可。这里有一个很好的例子说明了这种“旧的扫描方式”。这段代码可以处理iBeacons,但当然会检测到任何BLE设备。我理解你所说的,我现在知道如何设置扫描间隔。非常感谢你。我有一个类似的问题,关于如何设置BLE发射机间隔。我想知道是否有一种方法可以发送一次,这样我就可以控制发送间隔。但是我找不到它。我可以选择设置三种模式。播发间隔为1000250100ms。你真是太好了@很抱歉,我在最后的评论中忘记了@you。如果我没有@you,我不知道你是否能收到通知。非常感谢。你的建议太棒了!我还有一个关于广告间隔的问题。我想是否有可能控制时间间隔?我只是在中找到了
setAdvertiseMode
,但找不到像
setForegroundScanPeriod
这样的设置播发间隔的方法。再次感谢你!你想控制传输速率吗?例如,1赫兹对10赫兹?是的,有可能吗@大卫:是的,这是可能的。请看这里:我真的很抱歉,我没有清楚地解释我的问题,我想控制播发间隔,如
setForegroundBetweenScanPeriod
,而不仅仅是从三种模式中选择。例如,我想将播发间隔设置为20ms@戴维德扬