Perform camera permission and app ops check when setting camera for VT.
When a calling InCallService attempts to use the setCamera API on the VideoCall, Telecom will perform a permission check to ensure that the caller has the correct camera permission and passes the app-ops camera check. A failure to set the camera will result in a callback via the call session event API. This got a little messy as the app ops package name needs to come from the InCallService, and handler usage in the VideoProvider API means we had to pass around the uid/pid of the caller, obtained before we trampoline onto the handler. Test: Unit tests added, manual testing performed. Bug: 32747443 Change-Id: I555a04f9c3fb45e60bb811f64ba855ccf2e3b0e2
This commit is contained in:
@@ -87,7 +87,8 @@ public abstract class InCallService extends Service {
|
||||
|
||||
switch (msg.what) {
|
||||
case MSG_SET_IN_CALL_ADAPTER:
|
||||
mPhone = new Phone(new InCallAdapter((IInCallAdapter) msg.obj));
|
||||
String callingPackage = getApplicationContext().getOpPackageName();
|
||||
mPhone = new Phone(new InCallAdapter((IInCallAdapter) msg.obj), callingPackage);
|
||||
mPhone.addListener(mPhoneListener);
|
||||
onPhoneCreated(mPhone);
|
||||
break;
|
||||
@@ -664,7 +665,8 @@ public abstract class InCallService extends Service {
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_TX_START},
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_TX_STOP},
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_FAILURE},
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_READY}.
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_READY},
|
||||
* {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_PERMISSION_ERROR}.
|
||||
*/
|
||||
public abstract void onCallSessionEvent(int event);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user