Skip to content

Commit 6b93648

Browse files
committed
Use a low latency WiFi lock to reduce RTT
1 parent 543f875 commit 6b93648

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

app/src/main/java/org/cgutman/usbip/service/UsbIpService.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ public class UsbIpService extends Service implements UsbRequestHandler {
6363
private HashMap<Socket, AttachedDeviceContext> socketMap;
6464
private UsbIpServer server;
6565
private WakeLock cpuWakeLock;
66-
private WifiLock wifiLock;
66+
private WifiLock highPerfWifiLock;
67+
private WifiLock lowLatencyWifiLock;
6768

6869
private static final boolean DEBUG = false;
6970

@@ -153,8 +154,13 @@ public void onCreate() {
153154
cpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "USBIPServerForAndroid:Service");
154155
cpuWakeLock.acquire();
155156

156-
wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "USBIPServerForAndroid:Service");
157-
wifiLock.acquire();
157+
highPerfWifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "USBIPServerForAndroid:Service:HP");
158+
highPerfWifiLock.acquire();
159+
160+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
161+
lowLatencyWifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_LOW_LATENCY, "USBIPServerForAndroid:Service:LL");
162+
lowLatencyWifiLock.acquire();
163+
}
158164

159165
server = new UsbIpServer();
160166
server.start(this);
@@ -173,8 +179,11 @@ public void onDestroy() {
173179

174180
server.stop();
175181
unregisterReceiver(usbReceiver);
176-
177-
wifiLock.release();
182+
183+
if (lowLatencyWifiLock != null) {
184+
lowLatencyWifiLock.release();
185+
}
186+
highPerfWifiLock.release();
178187
cpuWakeLock.release();
179188
}
180189

0 commit comments

Comments
 (0)