Add workaround for Galaxy S10 devices crashing during WifiLock acquisition

This commit is contained in:
Cameron Gutman
2022-06-26 13:59:39 -05:00
parent ffd6fab35c
commit 9c76defad0
@@ -265,6 +265,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
// Make sure Wi-Fi is fully powered up // Make sure Wi-Fi is fully powered up
WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
try {
highPerfWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "Moonlight High Perf Lock"); highPerfWifiLock = wifiMgr.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "Moonlight High Perf Lock");
highPerfWifiLock.setReferenceCounted(false); highPerfWifiLock.setReferenceCounted(false);
highPerfWifiLock.acquire(); highPerfWifiLock.acquire();
@@ -274,6 +275,11 @@ public class Game extends Activity implements SurfaceHolder.Callback,
lowLatencyWifiLock.setReferenceCounted(false); lowLatencyWifiLock.setReferenceCounted(false);
lowLatencyWifiLock.acquire(); 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); appName = Game.this.getIntent().getStringExtra(EXTRA_APP_NAME);
pcName = Game.this.getIntent().getStringExtra(EXTRA_PC_NAME); pcName = Game.this.getIntent().getStringExtra(EXTRA_PC_NAME);