From 9c76defad0a75957f8173a6a55e401f359d0e27e Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 26 Jun 2022 13:59:39 -0500 Subject: [PATCH] Add workaround for Galaxy S10 devices crashing during WifiLock acquisition --- app/src/main/java/com/limelight/Game.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 0119b641..e4f0f093 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -265,14 +265,20 @@ public class Game extends Activity implements SurfaceHolder.Callback, // Make sure Wi-Fi is fully powered up WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); - highPerfWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "Moonlight High Perf Lock"); - highPerfWifiLock.setReferenceCounted(false); - highPerfWifiLock.acquire(); + try { + highPerfWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "Moonlight High Perf Lock"); + highPerfWifiLock.setReferenceCounted(false); + highPerfWifiLock.acquire(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - lowLatencyWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_LOW_LATENCY, "Moonlight Low Latency Lock"); - lowLatencyWifiLock.setReferenceCounted(false); - lowLatencyWifiLock.acquire(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + lowLatencyWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_LOW_LATENCY, "Moonlight Low Latency Lock"); + lowLatencyWifiLock.setReferenceCounted(false); + lowLatencyWifiLock.acquire(); + } + } catch (SecurityException e) { + // Some Samsung Galaxy S10+/S10e devices throw a SecurityException from + // WifiLock.acquire() even though we have android.permission.WAKE_LOCK in our manifest. + e.printStackTrace(); } appName = Game.this.getIntent().getStringExtra(EXTRA_APP_NAME);