Most visited

Recently visited

Added in API level 17

DisplayManager

public final class DisplayManager
extends Object

java.lang.Object
   ↳ android.hardware.display.DisplayManager


管理附加显示的属性。

通过调用参数 DISPLAY_SERVICE来调用 Context.getSystemService()来获得 DISPLAY_SERVICE

Summary

Nested classes

interface DisplayManager.DisplayListener

监听可用显示设备的更改。

Constants

String DISPLAY_CATEGORY_PRESENTATION

显示类别:演示显示。

int VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR

虚拟显示标志:允许内容在没有内容显示时在私人显示器上被镜像。

int VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY

虚拟显示标志:只显示该显示的内容; 不要镜像另一个显示器的内容。

int VIRTUAL_DISPLAY_FLAG_PRESENTATION

虚拟显示标志:创建演示显示。

int VIRTUAL_DISPLAY_FLAG_PUBLIC

虚拟显示标志:创建公共显示。

int VIRTUAL_DISPLAY_FLAG_SECURE

虚拟显示标志:创建安全显示。

Public methods

VirtualDisplay createVirtualDisplay(String name, int width, int height, int densityDpi, Surface surface, int flags)

创建一个虚拟显示。

VirtualDisplay createVirtualDisplay(String name, int width, int height, int densityDpi, Surface surface, int flags, VirtualDisplay.Callback callback, Handler handler)

创建一个虚拟显示。

Display getDisplay(int displayId)

获取有关逻辑显示的信息。

Display[] getDisplays()

获取当前所有有效的逻辑显示。

Display[] getDisplays(String category)

获取指定类别的所有当前有效的逻辑显示。

void registerDisplayListener(DisplayManager.DisplayListener listener, Handler handler)

注册显示监听器以接收有关何时添加,删除或更改显示的通知。

void unregisterDisplayListener(DisplayManager.DisplayListener listener)

取消注册显示监听器。

Inherited methods

From class java.lang.Object

Constants

DISPLAY_CATEGORY_PRESENTATION

Added in API level 17
String DISPLAY_CATEGORY_PRESENTATION

显示类别:演示显示。

此类别可用于识别适合用作演示显示器(如HDMI或无线显示器)的辅助显示器。 应用程序可以自动将其内容投影到演示文稿显示中,以提供更丰富的第二屏体验。

也可以看看:

常量值:“android.hardware.display.category.PRESENTATION”

VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR

Added in API level 21
int VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR

虚拟显示标志:允许内容在没有内容显示时在私人显示器上被镜像。

此标志与VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY 如果两个标志都被指定,那么将仅应用自己内容的行为。

每当这个标志的行为暗示VIRTUAL_DISPLAY_FLAG_PUBLIC设置和VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY尚未确定。 此标志仅用于在创建私人显示时覆盖默认行为。

创建自动镜像虚拟显示需要CAPTURE_VIDEO_OUTPUTCAPTURE_SECURE_VIDEO_OUTPUT权限。 这些权限被保留供系统组件使用,并且不适用于第三方应用程序。 或者,可以使用适当的MediaProjection来创建自动镜像虚拟显示。

也可以看看:

常量值:16(0x00000010)

VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY

Added in API level 20
int VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY

虚拟显示标志:只显示该显示的内容; 不要镜像另一个显示器的内容。

此标志与VIRTUAL_DISPLAY_FLAG_PUBLIC结合使用。 通常,如果公共虚拟显示器没有自己的窗口,它们将自动镜像默认显示器的内容。 当这个标志被指定时,虚拟显示器将只显示它自己的内容,如果它没有窗口,它将被清空。

该标志与VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR 如果两个标志都被指定,那么将仅应用自己内容的行为。

只要VIRTUAL_DISPLAY_FLAG_PUBLICVIRTUAL_DISPLAY_FLAG_AUTO_MIRROR都没有被设置,这个标志的行为就是隐含的。 此标志仅用于在创建公共显示时覆盖默认行为。

也可以看看:

常量值:8(0x00000008)

VIRTUAL_DISPLAY_FLAG_PRESENTATION

Added in API level 19
int VIRTUAL_DISPLAY_FLAG_PRESENTATION

虚拟显示标志:创建演示显示。

Presentation virtual displays

当该标志被设置时,虚拟显示被注册为presentation display category的演示显示。 应用程序可以自动将其内容投影到演示文稿显示中,以提供更丰富的第二屏体验。

Non-presentation virtual displays

如果未设置此标志,则虚拟显示不会被注册为演示显示。 应用程序仍然可以在显示器上投影它们的内容,但它们通常不会自动执行。 该选项适用于更多专用显示器。

也可以看看:

常量值:2(0x00000002)

VIRTUAL_DISPLAY_FLAG_PUBLIC

Added in API level 19
int VIRTUAL_DISPLAY_FLAG_PUBLIC

虚拟显示标志:创建公共显示。

Public virtual displays

当这个标志被设置时,虚拟显示是公开的。

公共虚拟显示器的行为与大多数连接到系统的其他显示器一样,例如HDMI或无线显示器。 应用程序可以在显示器上打开窗口,系统可以将其他显示器的内容镜像到其上。

创建不限于自己内容的公共虚拟显示只会隐式创建自动镜像显示。 有关限制允许创建自动镜像显示的人员,请参阅VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR

Private virtual displays

当这个标志未被设置时,虚拟显示是私人的,如 FLAG_PRIVATE显示标志所定义的。

专用虚拟显示器属于创建它的应用程序。 只有私人虚拟展示的所有者才可以在其上放置窗口。 私有虚拟显示器也不参与显示镜像:它不会接收来自其他显示器的镜像内容,也不允许将其自己的内容镜像到别处。 更确切地说,允许枚举或与私有显示交互的唯一过程是与最初创建私有虚拟显示的应用具有相同UID的那些过程。

也可以看看:

常数值:1(0x00000001)

VIRTUAL_DISPLAY_FLAG_SECURE

Added in API level 19
int VIRTUAL_DISPLAY_FLAG_SECURE

虚拟显示标志:创建安全显示。

Secure virtual displays

当此标志被设置时,虚拟显示被认为是安全的,如FLAG_SECURE显示标志所定义。 呼叫者承诺采取合理的措施,例如空中加密,以防止显示内容被拦截或记录在持久媒体上。

创建安全的虚拟显示器需要CAPTURE_SECURE_VIDEO_OUTPUT权限。 此权限仅供系统组件使用,并且不适用于第三方应用程序。

Non-secure virtual displays

当这个标志未被设置时,虚拟显示被认为是不安全的。 如果在此显示屏上显示,则安全窗口的内容将会空白。

也可以看看:

常量值:4(0x00000004)

Public methods

createVirtualDisplay

Added in API level 19
VirtualDisplay createVirtualDisplay (String name, 
                int width, 
                int height, 
                int densityDpi, 
                Surface surface, 
                int flags)

创建一个虚拟显示。

Parameters
name String
width int
height int
densityDpi int
surface Surface
flags int
Returns
VirtualDisplay

也可以看看:

createVirtualDisplay

Added in API level 21
VirtualDisplay createVirtualDisplay (String name, 
                int width, 
                int height, 
                int densityDpi, 
                Surface surface, 
                int flags, 
                VirtualDisplay.Callback callback, 
                Handler handler)

创建一个虚拟显示。

虚拟显示的内容呈现为由应用程序提供的 Surface

当不再需要时,虚拟显示应该是released 由于虚拟显示器呈现到应用程序提供的表面,因此当进程终止并且其上的所有剩余窗口将被强制删除时,它将自动释放。

虚拟显示的行为取决于提供给此方法的标志。 默认情况下,虚拟显示被创建为私有,非呈现和不安全。 权限可能需要使用某些标志。

KITKAT_WATCH ,表面可以使用setSurface(Surface)动态连接或分离。 以前,当createVirtualDisplay(String, int, int, int, Surface, int)时,曲面必须非空,并且在显示的整个生命周期内无法更改。

分离支持虚拟显示器的表面具有与关闭屏幕类似的效果。

Parameters
name String: The name of the virtual display, must be non-empty.
width int: The width of the virtual display in pixels, must be greater than 0.
height int: The height of the virtual display in pixels, must be greater than 0.
densityDpi int: The density of the virtual display in dpi, must be greater than 0.
surface Surface: The surface to which the content of the virtual display should be rendered, or null if there is none initially.
flags int: A combination of virtual display flags: VIRTUAL_DISPLAY_FLAG_PUBLIC, VIRTUAL_DISPLAY_FLAG_PRESENTATION, VIRTUAL_DISPLAY_FLAG_SECURE, VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, or VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR.
callback VirtualDisplay.Callback: Callback to call when the state of the VirtualDisplay changes
handler Handler: The handler on which the listener should be invoked, or null if the listener should be invoked on the calling thread's looper.
Returns
VirtualDisplay The newly created virtual display, or null if the application could not create the virtual display.
Throws
SecurityException if the caller does not have permission to create a virtual display with the specified flags.

getDisplay

Added in API level 17
Display getDisplay (int displayId)

获取有关逻辑显示的信息。 显示度量可以被调整以为传统应用提供兼容性。

Parameters
displayId int: The logical display id.
Returns
Display The display object, or null if there is no valid display with the given id.

getDisplays

Added in API level 17
Display[] getDisplays ()

获取当前所有有效的逻辑显示。

Returns
Display[] An array containing all displays.

getDisplays

Added in API level 17
Display[] getDisplays (String category)

获取指定类别的所有当前有效的逻辑显示。

当某个类别中有多个显示时,返回的显示会按照偏好进行排序。 例如,如果请求的类别为DISPLAY_CATEGORY_PRESENTATION并且存在多个演示文稿显示,那么显示将进行排序,以便返回数组中的第一个显示是最受欢迎的演示文稿显示。 该应用程序可以简单地使用第一显示器或允许用户选择。

Parameters
category String: The requested display category or null to return all displays.
Returns
Display[] An array containing all displays sorted by order of preference.

也可以看看:

registerDisplayListener

Added in API level 17
void registerDisplayListener (DisplayManager.DisplayListener listener, 
                Handler handler)

注册显示监听器以接收有关何时添加,删除或更改显示的通知。

Parameters
listener DisplayManager.DisplayListener: The listener to register.
handler Handler: The handler on which the listener should be invoked, or null if the listener should be invoked on the calling thread's looper.

也可以看看:

unregisterDisplayListener

Added in API level 17
void unregisterDisplayListener (DisplayManager.DisplayListener listener)

取消注册显示监听器。

Parameters
listener DisplayManager.DisplayListener: The listener to unregister.

也可以看看:

Hooray!