Fields Summary |
---|
public static final int | FLAG_DEFAULT_DISPLAYFlag: Indicates that this display device should be considered the default display
device of the system. |
public static final int | FLAG_ROTATES_WITH_CONTENTFlag: Indicates that the orientation of this display device is coupled to the
rotation of its associated logical display.
This flag should be applied to the default display to indicate that the user
physically rotates the display when content is presented in a different orientation.
The display manager will apply a coordinate transformation assuming that the
physical orientation of the display matches the logical orientation of its content.
The flag should not be set when the display device is mounted in a fixed orientation
such as on a desk. The display manager will apply a coordinate transformation
such as a scale and translation to letterbox or pillarbox format under the
assumption that the physical orientation of the display is invariant.
|
public static final int | FLAG_SECUREFlag: Indicates that this display device has secure video output, such as HDCP. |
public static final int | FLAG_SUPPORTS_PROTECTED_BUFFERSFlag: Indicates that this display device supports compositing
from gralloc protected buffers. |
public static final int | FLAG_PRIVATEFlag: Indicates that the display device is owned by a particular application
and that no other application should be able to interact with it.
Should typically be used together with {@link #FLAG_OWN_CONTENT_ONLY}. |
public static final int | FLAG_NEVER_BLANKFlag: Indicates that the display device is not blanked automatically by
the power manager. |
public static final int | FLAG_PRESENTATIONFlag: Indicates that the display is suitable for presentations. |
public static final int | FLAG_OWN_CONTENT_ONLYFlag: Only show this display's own content; do not mirror
the content of another display. |
public static final int | TOUCH_NONETouch attachment: Display does not receive touch. |
public static final int | TOUCH_INTERNALTouch attachment: Touch input is via the internal interface. |
public static final int | TOUCH_EXTERNALTouch attachment: Touch input is via an external interface, such as USB. |
public String | nameGets the name of the display device, which may be derived from EDID or
other sources. The name may be localized and displayed to the user. |
public String | uniqueIdUnique Id of display device. |
public int | widthThe width of the display in its natural orientation, in pixels.
This value is not affected by display rotation. |
public int | heightThe height of the display in its natural orientation, in pixels.
This value is not affected by display rotation. |
public float | refreshRateThe refresh rate of the display, in frames per second. |
public float[] | supportedRefreshRatesThe supported refresh rates of the display at the current resolution in frames per second. |
public int | densityDpiThe nominal apparent density of the display in DPI used for layout calculations.
This density is sensitive to the viewing distance. A big TV and a tablet may have
the same apparent density even though the pixels on the TV are much bigger than
those on the tablet. |
public float | xDpiThe physical density of the display in DPI in the X direction.
This density should specify the physical size of each pixel. |
public float | yDpiThe physical density of the display in DPI in the X direction.
This density should specify the physical size of each pixel. |
public long | appVsyncOffsetNanosThis is a positive value indicating the phase offset of the VSYNC events provided by
Choreographer relative to the display refresh. For example, if Choreographer reports
that the refresh occurred at time N, it actually occurred at (N - appVsyncOffsetNanos). |
public long | presentationDeadlineNanosThis is how far in advance a buffer must be queued for presentation at
a given time. If you want a buffer to appear on the screen at
time N, you must submit the buffer before (N - bufferDeadlineNanos). |
public int | flagsDisplay flags. |
public int | touchThe touch attachment, per {@link DisplayViewport#touch}. |
public int | rotationThe additional rotation to apply to all content presented on the display device
relative to its physical coordinate system. Default is {@link Surface#ROTATION_0}.
This field can be used to compensate for the fact that the display has been
physically rotated relative to its natural orientation such as an HDMI monitor
that has been mounted sideways to appear to be portrait rather than landscape.
|
public int | typeDisplay type. |
public String | addressDisplay address, or null if none.
Interpretation varies by display type. |
public int | stateDisplay state. |
public int | ownerUidThe UID of the application that owns this display, or zero if it is owned by the system.
If the display is private, then only the owner can use it.
|
public String | ownerPackageNameThe package name of the application that owns this display, or null if it is
owned by the system.
If the display is private, then only the owner can use it.
|
Methods Summary |
---|
public void | copyFrom(com.android.server.display.DisplayDeviceInfo other)
name = other.name;
uniqueId = other.uniqueId;
width = other.width;
height = other.height;
refreshRate = other.refreshRate;
supportedRefreshRates = other.supportedRefreshRates;
densityDpi = other.densityDpi;
xDpi = other.xDpi;
yDpi = other.yDpi;
appVsyncOffsetNanos = other.appVsyncOffsetNanos;
presentationDeadlineNanos = other.presentationDeadlineNanos;
flags = other.flags;
touch = other.touch;
rotation = other.rotation;
type = other.type;
address = other.address;
state = other.state;
ownerUid = other.ownerUid;
ownerPackageName = other.ownerPackageName;
|
public boolean | equals(java.lang.Object o)
return o instanceof DisplayDeviceInfo && equals((DisplayDeviceInfo)o);
|
public boolean | equals(com.android.server.display.DisplayDeviceInfo other)
return other != null
&& Objects.equal(name, other.name)
&& Objects.equal(uniqueId, other.uniqueId)
&& width == other.width
&& height == other.height
&& refreshRate == other.refreshRate
&& Arrays.equals(supportedRefreshRates, other.supportedRefreshRates)
&& densityDpi == other.densityDpi
&& xDpi == other.xDpi
&& yDpi == other.yDpi
&& appVsyncOffsetNanos == other.appVsyncOffsetNanos
&& presentationDeadlineNanos == other.presentationDeadlineNanos
&& flags == other.flags
&& touch == other.touch
&& rotation == other.rotation
&& type == other.type
&& Objects.equal(address, other.address)
&& state == other.state
&& ownerUid == other.ownerUid
&& Objects.equal(ownerPackageName, other.ownerPackageName);
|
private static java.lang.String | flagsToString(int flags)
StringBuilder msg = new StringBuilder();
if ((flags & FLAG_DEFAULT_DISPLAY) != 0) {
msg.append(", FLAG_DEFAULT_DISPLAY");
}
if ((flags & FLAG_ROTATES_WITH_CONTENT) != 0) {
msg.append(", FLAG_ROTATES_WITH_CONTENT");
}
if ((flags & FLAG_SECURE) != 0) {
msg.append(", FLAG_SECURE");
}
if ((flags & FLAG_SUPPORTS_PROTECTED_BUFFERS) != 0) {
msg.append(", FLAG_SUPPORTS_PROTECTED_BUFFERS");
}
if ((flags & FLAG_PRIVATE) != 0) {
msg.append(", FLAG_PRIVATE");
}
if ((flags & FLAG_NEVER_BLANK) != 0) {
msg.append(", FLAG_NEVER_BLANK");
}
if ((flags & FLAG_PRESENTATION) != 0) {
msg.append(", FLAG_PRESENTATION");
}
if ((flags & FLAG_OWN_CONTENT_ONLY) != 0) {
msg.append(", FLAG_OWN_CONTENT_ONLY");
}
return msg.toString();
|
public int | hashCode()
return 0; // don't care
|
public void | setAssumedDensityForExternalDisplay(int width, int height)
densityDpi = Math.min(width, height) * DisplayMetrics.DENSITY_XHIGH / 1080;
// Technically, these values should be smaller than the apparent density
// but we don't know the physical size of the display.
xDpi = densityDpi;
yDpi = densityDpi;
|
public java.lang.String | toString()
StringBuilder sb = new StringBuilder();
sb.append("DisplayDeviceInfo{\"");
sb.append(name).append("\": uniqueId=\"").append(uniqueId).append("\", ");
sb.append(width).append(" x ").append(height);
sb.append(", ").append(refreshRate).append(" fps");
sb.append(", supportedRefreshRates ").append(Arrays.toString(supportedRefreshRates));
sb.append(", density ").append(densityDpi);
sb.append(", ").append(xDpi).append(" x ").append(yDpi).append(" dpi");
sb.append(", appVsyncOff ").append(appVsyncOffsetNanos);
sb.append(", presDeadline ").append(presentationDeadlineNanos);
sb.append(", touch ").append(touchToString(touch));
sb.append(", rotation ").append(rotation);
sb.append(", type ").append(Display.typeToString(type));
if (address != null) {
sb.append(", address ").append(address);
}
sb.append(", state ").append(Display.stateToString(state));
if (ownerUid != 0 || ownerPackageName != null) {
sb.append(", owner ").append(ownerPackageName);
sb.append(" (uid ").append(ownerUid).append(")");
}
sb.append(flagsToString(flags));
sb.append("}");
return sb.toString();
|
private static java.lang.String | touchToString(int touch)
switch (touch) {
case TOUCH_NONE:
return "NONE";
case TOUCH_INTERNAL:
return "INTERNAL";
case TOUCH_EXTERNAL:
return "EXTERNAL";
default:
return Integer.toString(touch);
}
|