@@ -63,7 +63,8 @@ public class UsbIpService extends Service implements UsbRequestHandler {
63
63
private HashMap <Socket , AttachedDeviceContext > socketMap ;
64
64
private UsbIpServer server ;
65
65
private WakeLock cpuWakeLock ;
66
- private WifiLock wifiLock ;
66
+ private WifiLock highPerfWifiLock ;
67
+ private WifiLock lowLatencyWifiLock ;
67
68
68
69
private static final boolean DEBUG = false ;
69
70
@@ -153,8 +154,13 @@ public void onCreate() {
153
154
cpuWakeLock = pm .newWakeLock (PowerManager .PARTIAL_WAKE_LOCK , "USBIPServerForAndroid:Service" );
154
155
cpuWakeLock .acquire ();
155
156
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
+ }
158
164
159
165
server = new UsbIpServer ();
160
166
server .start (this );
@@ -173,8 +179,11 @@ public void onDestroy() {
173
179
174
180
server .stop ();
175
181
unregisterReceiver (usbReceiver );
176
-
177
- wifiLock .release ();
182
+
183
+ if (lowLatencyWifiLock != null ) {
184
+ lowLatencyWifiLock .release ();
185
+ }
186
+ highPerfWifiLock .release ();
178
187
cpuWakeLock .release ();
179
188
}
180
189
0 commit comments