MediaProjection
public
final
class
MediaProjection
extends Object
java.lang.Object | |
↳ | android.media.projection.MediaProjection |
A token granting applications the ability to capture screen contents and/or record system audio. The exact capabilities granted depend on the type of MediaProjection.
A screen capture session can be started through MediaProjectionManager.createScreenCaptureIntent()
. This grants the ability to
capture screen contents, but not system audio.
Summary
Nested classes | |
---|---|
class |
MediaProjection.Callback
Callbacks for the projection session. |
Public methods | |
---|---|
VirtualDisplay
|
createVirtualDisplay(String name, int width, int height, int dpi, int flags, Surface surface, VirtualDisplay.Callback callback, Handler handler)
Creates a |
void
|
registerCallback(MediaProjection.Callback callback, Handler handler)
Register a listener to receive notifications about when the |
void
|
stop()
Stops projection. |
void
|
unregisterCallback(MediaProjection.Callback callback)
Unregister a |
Inherited methods | |
---|---|
Public methods
createVirtualDisplay
public VirtualDisplay createVirtualDisplay (String name, int width, int height, int dpi, int flags, Surface surface, VirtualDisplay.Callback callback, Handler handler)
Creates a VirtualDisplay
to capture the
contents of the screen.
To correctly clean up resources associated with a capture, the application must register a
Callback
before invocation. The app must override Callback#onStop()
to clean
up (by invokingVirtualDisplay#release()
, Surface#release()
and related
resources).
Parameters | |
---|---|
name |
String : The name of the virtual display, must be non-empty.
This value cannot be null . |
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. |
dpi |
int : The density of the virtual display in dpi. Must be greater than 0. |
flags |
int : A combination of virtual display flags. See DisplayManager for the
full list of flags. Note that
DisplayManager#VIRTUAL_DISPLAY_FLAG_PRESENTATION
is always enabled. The following flags may be overridden, depending on how
the component with {android.Manifest.permission.MANAGE_MEDIA_PROJECTION}
handles the user's consent:
DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY ,
DisplayManager#VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR ,
DisplayManager#VIRTUAL_DISPLAY_FLAG_PUBLIC . |
surface |
Surface : The surface to which the content of the virtual display should be rendered,
or null if there is none initially. |
callback |
VirtualDisplay.Callback : Callback invoked when the virtual display's state changes, or null. |
handler |
Handler : The Handler on which the callback should be invoked, or
null if the callback should be invoked on the calling thread's main
Looper . |
Returns | |
---|---|
VirtualDisplay |
Throws | |
---|---|
IllegalStateException |
If the target SDK is U and up, and
if no Callback is registered. |
SecurityException |
In any of the following scenarios:
U .
Instead, recording doesn't begin until the user re-grants
consent in the dialog. |
See also:
registerCallback
public void registerCallback (MediaProjection.Callback callback, Handler handler)
Register a listener to receive notifications about when the MediaProjection
or
captured content changes state.
The callback must be registered before invoking
createVirtualDisplay(java.lang.String, int, int, int, int, android.view.Surface, android.hardware.display.VirtualDisplay.Callback, android.os.Handler)
to ensure that any notifications on the callback are not missed. The client must
implement Callback#onStop()
and clean up any resources it is holding, e.g. the
VirtualDisplay
and Surface
.
Parameters | |
---|---|
callback |
MediaProjection.Callback : The callback to call.
This value cannot be null . |
handler |
Handler : The handler on which the callback should be invoked, or
null if the callback should be invoked on the calling thread's looper. |
Throws | |
---|---|
NullPointerException |
If the given callback is null. |
See also:
unregisterCallback
public void unregisterCallback (MediaProjection.Callback callback)
Unregister a MediaProjection
listener.
Parameters | |
---|---|
callback |
MediaProjection.Callback : The callback to unregister.
This value cannot be null . |
Throws | |
---|---|
NullPointerException |
If the given callback is null. |
See also:
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-04 UTC.