mirror of
https://github.com/Genymobile/scrcpy.git
synced 2025-12-17 05:24:19 +01:00
Do not fail when uniqueId field is missing
On some devices, DisplayInfo does not have a "uniqueId" field. This field is only used for correct UHID behavior on virtual displays, so its absence should not prevent scrcpy from working. Refs #6009 <https://github.com/Genymobile/scrcpy/pull/6009> Fixes #6461 <https://github.com/Genymobile/scrcpy/issues/6461>
This commit is contained in:
@@ -139,7 +139,13 @@ public final class DisplayManager {
|
|||||||
int layerStack = cls.getDeclaredField("layerStack").getInt(displayInfo);
|
int layerStack = cls.getDeclaredField("layerStack").getInt(displayInfo);
|
||||||
int flags = cls.getDeclaredField("flags").getInt(displayInfo);
|
int flags = cls.getDeclaredField("flags").getInt(displayInfo);
|
||||||
int dpi = cls.getDeclaredField("logicalDensityDpi").getInt(displayInfo);
|
int dpi = cls.getDeclaredField("logicalDensityDpi").getInt(displayInfo);
|
||||||
String uniqueId = (String) cls.getDeclaredField("uniqueId").get(displayInfo);
|
String uniqueId;
|
||||||
|
try {
|
||||||
|
uniqueId = (String) cls.getDeclaredField("uniqueId").get(displayInfo);
|
||||||
|
} catch (NoSuchFieldException e) {
|
||||||
|
// This field might not exist: <https://github.com/Genymobile/scrcpy/issues/6461>
|
||||||
|
uniqueId = null;
|
||||||
|
}
|
||||||
return new DisplayInfo(displayId, new Size(width, height), rotation, layerStack, flags, dpi, uniqueId);
|
return new DisplayInfo(displayId, new Size(width, height), rotation, layerStack, flags, dpi, uniqueId);
|
||||||
} catch (ReflectiveOperationException e) {
|
} catch (ReflectiveOperationException e) {
|
||||||
throw new AssertionError(e);
|
throw new AssertionError(e);
|
||||||
|
|||||||
Reference in New Issue
Block a user