Handle failure to bind com.nvidia.blakepairing more robustly

This commit is contained in:
Cameron Gutman
2022-06-18 14:31:38 -05:00
parent b2e605838e
commit a93422d3ed

View File

@@ -92,8 +92,15 @@ public class ShieldControllerExtensionsHandler implements InputManager.InputDevi
Intent intent = new Intent();
intent.setClassName("com.nvidia.blakepairing", "com.nvidia.blakepairing.AccessoryService");
if (!context.bindService(intent, serviceConnection, Service.BIND_AUTO_CREATE)) {
LimeLog.info("com.nvidia.blakepairing.AccessoryService is not available on this device");
try {
// The docs say to call unbindService() even if the bindService() call returns false
// or throws a SecurityException.
if (!context.bindService(intent, serviceConnection, Service.BIND_AUTO_CREATE)) {
LimeLog.info("com.nvidia.blakepairing.AccessoryService is not available on this device");
context.unbindService(serviceConnection);
}
} catch (SecurityException e) {
context.unbindService(serviceConnection);
}
}