• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.media.projection;
18 
19 import android.media.projection.IMediaProjection;
20 import android.media.projection.IMediaProjectionCallback;
21 import android.media.projection.IMediaProjectionWatcherCallback;
22 import android.media.projection.MediaProjectionInfo;
23 import android.os.IBinder;
24 import android.view.ContentRecordingSession;
25 
26 /** {@hide} */
27 interface IMediaProjectionManager {
28     @UnsupportedAppUsage
hasProjectionPermission(int uid, String packageName)29     boolean hasProjectionPermission(int uid, String packageName);
createProjection(int uid, String packageName, int type, boolean permanentGrant)30     IMediaProjection createProjection(int uid, String packageName, int type,
31             boolean permanentGrant);
isValidMediaProjection(IMediaProjection projection)32     boolean isValidMediaProjection(IMediaProjection projection);
getActiveProjectionInfo()33     MediaProjectionInfo getActiveProjectionInfo();
stopActiveProjection()34     void stopActiveProjection();
addCallback(IMediaProjectionWatcherCallback callback)35     void addCallback(IMediaProjectionWatcherCallback callback);
removeCallback(IMediaProjectionWatcherCallback callback)36     void removeCallback(IMediaProjectionWatcherCallback callback);
37 
38     /**
39      * Updates the content recording session. If a different session is already in progress, then
40      * the pre-existing session is stopped, and the new incoming session takes over. Only updates
41      * the session if the given projection is valid.
42      *
43      * @param incomingSession the nullable incoming content recording session
44      * @param projection      the non-null projection the session describes
45      */
setContentRecordingSession(in ContentRecordingSession incomingSession, in IMediaProjection projection)46     void setContentRecordingSession(in ContentRecordingSession incomingSession,
47             in IMediaProjection projection);
48 }
49