diff options
author | Chong Zhang <chz@google.com> | 2013-05-03 15:55:36 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2013-08-23 16:02:09 -0700 |
commit | 1f3ecaae6303d5ee6c5ca8499262c9962f036365 (patch) | |
tree | 610f36b3c049710713e921c1aa10938fa250f1d2 /services/java/com/android/server/display/DisplayManagerService.java | |
parent | 570cd0f4c06a6e3de2af348040415ff2fcff57a1 (diff) |
wifi-display: add certification options
When certification mode is enabled:
- Pass wfd session info to wifi display settings
- Allow sink to connect to source
- Add interface in display manager for pausing/resuming session
- Add interface in WifiP2pManager for setting lc, oc and starting
autonomous GO
Note that we're compliant regardless of certification mode, but
some confusing options (eg. allowing incoming connection from
sink) we want to hide when not being tested.
Bug: 9371882
Change-Id: Icc7dcae4e046453796cfa03f5f197055fabf234b
Diffstat (limited to 'services/java/com/android/server/display/DisplayManagerService.java')
-rw-r--r-- | services/java/com/android/server/display/DisplayManagerService.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java index 659163ccf0b0..249c8b004e64 100644 --- a/services/java/com/android/server/display/DisplayManagerService.java +++ b/services/java/com/android/server/display/DisplayManagerService.java @@ -497,6 +497,48 @@ public final class DisplayManagerService extends IDisplayManager.Stub { } } + @Override + public void pauseWifiDisplay() { + if (mContext.checkCallingPermission( + android.Manifest.permission.CONFIGURE_WIFI_DISPLAY) + != PackageManager.PERMISSION_GRANTED) { + throw new SecurityException("Requires CONFIGURE_WIFI_DISPLAY" + + "permission to pause a wifi display session."); + } + + final long token = Binder.clearCallingIdentity(); + try { + synchronized (mSyncRoot) { + if (mWifiDisplayAdapter != null) { + mWifiDisplayAdapter.requestPauseLocked(); + } + } + } finally { + Binder.restoreCallingIdentity(token); + } + } + + @Override + public void resumeWifiDisplay() { + if (mContext.checkCallingPermission( + android.Manifest.permission.CONFIGURE_WIFI_DISPLAY) + != PackageManager.PERMISSION_GRANTED) { + throw new SecurityException("Requires CONFIGURE_WIFI_DISPLAY" + + "permission to resume a wifi display session."); + } + + final long token = Binder.clearCallingIdentity(); + try { + synchronized (mSyncRoot) { + if (mWifiDisplayAdapter != null) { + mWifiDisplayAdapter.requestResumeLocked(); + } + } + } finally { + Binder.restoreCallingIdentity(token); + } + } + @Override // Binder call public void disconnectWifiDisplay() { final long token = Binder.clearCallingIdentity(); |