Loading core/java/android/hardware/display/DisplayManager.java +10 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,16 @@ public final class DisplayManager { mGlobal.connectWifiDisplay(deviceAddress); } /** @hide */ public void pauseWifiDisplay() { mGlobal.pauseWifiDisplay(); } /** @hide */ public void resumeWifiDisplay() { mGlobal.resumeWifiDisplay(); } /** * Disconnects from the current Wifi display. * The results are sent as a {@link #ACTION_WIFI_DISPLAY_STATUS_CHANGED} broadcast. Loading core/java/android/hardware/display/DisplayManagerGlobal.java +16 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,22 @@ public final class DisplayManagerGlobal { } } public void pauseWifiDisplay() { try { mDm.pauseWifiDisplay(); } catch (RemoteException ex) { Log.e(TAG, "Failed to pause Wifi display.", ex); } } public void resumeWifiDisplay() { try { mDm.resumeWifiDisplay(); } catch (RemoteException ex) { Log.e(TAG, "Failed to resume Wifi display.", ex); } } public void disconnectWifiDisplay() { try { mDm.disconnectWifiDisplay(); Loading core/java/android/hardware/display/IDisplayManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -55,4 +55,10 @@ interface IDisplayManager { // No permissions required but must be same Uid as the creator. void releaseVirtualDisplay(in IBinder token); // Requires CONFIGURE_WIFI_DISPLAY permission. void pauseWifiDisplay(); // Requires CONFIGURE_WIFI_DISPLAY permission. void resumeWifiDisplay(); } core/java/android/hardware/display/WifiDisplaySessionInfo.java 0 → 100644 +116 −0 Original line number Diff line number Diff line /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; import android.os.Parcel; import android.os.Parcelable; /** * This class contains information regarding a wifi display session * (such as session id, source ip address, etc.). This is needed for * Wifi Display Certification process. * <p> * This object is immutable. * </p> * * @hide */ public final class WifiDisplaySessionInfo implements Parcelable { private final boolean mClient; private final int mSessionId; private final String mGroupId; private final String mPassphrase; private final String mIP; public static final Creator<WifiDisplaySessionInfo> CREATOR = new Creator<WifiDisplaySessionInfo>() { @Override public WifiDisplaySessionInfo createFromParcel(Parcel in) { boolean client = (in.readInt() != 0); int session = in.readInt(); String group = in.readString(); String pp = in.readString(); String ip = in.readString(); return new WifiDisplaySessionInfo(client, session, group, pp, ip); } @Override public WifiDisplaySessionInfo[] newArray(int size) { return new WifiDisplaySessionInfo[size]; } }; public WifiDisplaySessionInfo() { this(true, 0, "", "", ""); } public WifiDisplaySessionInfo( boolean client, int session, String group, String pp, String ip) { mClient = client; mSessionId = session; mGroupId = group; mPassphrase = pp; mIP = ip; } public boolean isClient() { return mClient; } public int getSessionId() { return mSessionId; } public String getGroupId() { return mGroupId; } public String getPassphrase() { return mPassphrase; } public String getIP() { return mIP; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mClient ? 1 : 0); dest.writeInt(mSessionId); dest.writeString(mGroupId); dest.writeString(mPassphrase); dest.writeString(mIP); } @Override public int describeContents() { return 0; } // For debugging purposes only. @Override public String toString() { return "WifiDisplaySessionInfo:" +"\n Client/Owner: " + (mClient ? "Client":"Owner") +"\n GroupId: " + mGroupId +"\n Passphrase: " + mPassphrase +"\n SessionId: " + mSessionId +"\n IP Address: " + mIP ; } } core/java/android/hardware/display/WifiDisplayStatus.java +23 −5 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ public final class WifiDisplayStatus implements Parcelable { private final WifiDisplay mActiveDisplay; private final WifiDisplay[] mDisplays; /** Session info needed for Miracast Certification */ private final WifiDisplaySessionInfo mSessionInfo; /** Feature state: Wifi display is not available on this device. */ public static final int FEATURE_STATE_UNAVAILABLE = 0; /** Feature state: Wifi display is disabled, probably because Wifi is disabled. */ Loading Loading @@ -76,8 +79,11 @@ public final class WifiDisplayStatus implements Parcelable { displays[i] = WifiDisplay.CREATOR.createFromParcel(in); } WifiDisplaySessionInfo sessionInfo = WifiDisplaySessionInfo.CREATOR.createFromParcel(in); return new WifiDisplayStatus(featureState, scanState, activeDisplayState, activeDisplay, displays); activeDisplay, displays, sessionInfo); } public WifiDisplayStatus[] newArray(int size) { Loading @@ -87,11 +93,11 @@ public final class WifiDisplayStatus implements Parcelable { public WifiDisplayStatus() { this(FEATURE_STATE_UNAVAILABLE, SCAN_STATE_NOT_SCANNING, DISPLAY_STATE_NOT_CONNECTED, null, WifiDisplay.EMPTY_ARRAY); null, WifiDisplay.EMPTY_ARRAY, null); } public WifiDisplayStatus(int featureState, int scanState, int activeDisplayState, WifiDisplay activeDisplay, WifiDisplay[] displays) { public WifiDisplayStatus(int featureState, int scanState, int activeDisplayState, WifiDisplay activeDisplay, WifiDisplay[] displays, WifiDisplaySessionInfo sessionInfo) { if (displays == null) { throw new IllegalArgumentException("displays must not be null"); } Loading @@ -101,6 +107,8 @@ public final class WifiDisplayStatus implements Parcelable { mActiveDisplayState = activeDisplayState; mActiveDisplay = activeDisplay; mDisplays = displays; mSessionInfo = (sessionInfo != null) ? sessionInfo : new WifiDisplaySessionInfo(); } /** Loading Loading @@ -151,6 +159,13 @@ public final class WifiDisplayStatus implements Parcelable { return mDisplays; } /** * Gets the Wifi display session info (required for certification only) */ public WifiDisplaySessionInfo getSessionInfo() { return mSessionInfo; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mFeatureState); Loading @@ -168,6 +183,8 @@ public final class WifiDisplayStatus implements Parcelable { for (WifiDisplay display : mDisplays) { display.writeToParcel(dest, flags); } mSessionInfo.writeToParcel(dest, flags); } @Override Loading @@ -183,6 +200,7 @@ public final class WifiDisplayStatus implements Parcelable { + ", activeDisplayState=" + mActiveDisplayState + ", activeDisplay=" + mActiveDisplay + ", displays=" + Arrays.toString(mDisplays) + ", sessionInfo=" + mSessionInfo + "}"; } } Loading
core/java/android/hardware/display/DisplayManager.java +10 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,16 @@ public final class DisplayManager { mGlobal.connectWifiDisplay(deviceAddress); } /** @hide */ public void pauseWifiDisplay() { mGlobal.pauseWifiDisplay(); } /** @hide */ public void resumeWifiDisplay() { mGlobal.resumeWifiDisplay(); } /** * Disconnects from the current Wifi display. * The results are sent as a {@link #ACTION_WIFI_DISPLAY_STATUS_CHANGED} broadcast. Loading
core/java/android/hardware/display/DisplayManagerGlobal.java +16 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,22 @@ public final class DisplayManagerGlobal { } } public void pauseWifiDisplay() { try { mDm.pauseWifiDisplay(); } catch (RemoteException ex) { Log.e(TAG, "Failed to pause Wifi display.", ex); } } public void resumeWifiDisplay() { try { mDm.resumeWifiDisplay(); } catch (RemoteException ex) { Log.e(TAG, "Failed to resume Wifi display.", ex); } } public void disconnectWifiDisplay() { try { mDm.disconnectWifiDisplay(); Loading
core/java/android/hardware/display/IDisplayManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -55,4 +55,10 @@ interface IDisplayManager { // No permissions required but must be same Uid as the creator. void releaseVirtualDisplay(in IBinder token); // Requires CONFIGURE_WIFI_DISPLAY permission. void pauseWifiDisplay(); // Requires CONFIGURE_WIFI_DISPLAY permission. void resumeWifiDisplay(); }
core/java/android/hardware/display/WifiDisplaySessionInfo.java 0 → 100644 +116 −0 Original line number Diff line number Diff line /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; import android.os.Parcel; import android.os.Parcelable; /** * This class contains information regarding a wifi display session * (such as session id, source ip address, etc.). This is needed for * Wifi Display Certification process. * <p> * This object is immutable. * </p> * * @hide */ public final class WifiDisplaySessionInfo implements Parcelable { private final boolean mClient; private final int mSessionId; private final String mGroupId; private final String mPassphrase; private final String mIP; public static final Creator<WifiDisplaySessionInfo> CREATOR = new Creator<WifiDisplaySessionInfo>() { @Override public WifiDisplaySessionInfo createFromParcel(Parcel in) { boolean client = (in.readInt() != 0); int session = in.readInt(); String group = in.readString(); String pp = in.readString(); String ip = in.readString(); return new WifiDisplaySessionInfo(client, session, group, pp, ip); } @Override public WifiDisplaySessionInfo[] newArray(int size) { return new WifiDisplaySessionInfo[size]; } }; public WifiDisplaySessionInfo() { this(true, 0, "", "", ""); } public WifiDisplaySessionInfo( boolean client, int session, String group, String pp, String ip) { mClient = client; mSessionId = session; mGroupId = group; mPassphrase = pp; mIP = ip; } public boolean isClient() { return mClient; } public int getSessionId() { return mSessionId; } public String getGroupId() { return mGroupId; } public String getPassphrase() { return mPassphrase; } public String getIP() { return mIP; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mClient ? 1 : 0); dest.writeInt(mSessionId); dest.writeString(mGroupId); dest.writeString(mPassphrase); dest.writeString(mIP); } @Override public int describeContents() { return 0; } // For debugging purposes only. @Override public String toString() { return "WifiDisplaySessionInfo:" +"\n Client/Owner: " + (mClient ? "Client":"Owner") +"\n GroupId: " + mGroupId +"\n Passphrase: " + mPassphrase +"\n SessionId: " + mSessionId +"\n IP Address: " + mIP ; } }
core/java/android/hardware/display/WifiDisplayStatus.java +23 −5 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ public final class WifiDisplayStatus implements Parcelable { private final WifiDisplay mActiveDisplay; private final WifiDisplay[] mDisplays; /** Session info needed for Miracast Certification */ private final WifiDisplaySessionInfo mSessionInfo; /** Feature state: Wifi display is not available on this device. */ public static final int FEATURE_STATE_UNAVAILABLE = 0; /** Feature state: Wifi display is disabled, probably because Wifi is disabled. */ Loading Loading @@ -76,8 +79,11 @@ public final class WifiDisplayStatus implements Parcelable { displays[i] = WifiDisplay.CREATOR.createFromParcel(in); } WifiDisplaySessionInfo sessionInfo = WifiDisplaySessionInfo.CREATOR.createFromParcel(in); return new WifiDisplayStatus(featureState, scanState, activeDisplayState, activeDisplay, displays); activeDisplay, displays, sessionInfo); } public WifiDisplayStatus[] newArray(int size) { Loading @@ -87,11 +93,11 @@ public final class WifiDisplayStatus implements Parcelable { public WifiDisplayStatus() { this(FEATURE_STATE_UNAVAILABLE, SCAN_STATE_NOT_SCANNING, DISPLAY_STATE_NOT_CONNECTED, null, WifiDisplay.EMPTY_ARRAY); null, WifiDisplay.EMPTY_ARRAY, null); } public WifiDisplayStatus(int featureState, int scanState, int activeDisplayState, WifiDisplay activeDisplay, WifiDisplay[] displays) { public WifiDisplayStatus(int featureState, int scanState, int activeDisplayState, WifiDisplay activeDisplay, WifiDisplay[] displays, WifiDisplaySessionInfo sessionInfo) { if (displays == null) { throw new IllegalArgumentException("displays must not be null"); } Loading @@ -101,6 +107,8 @@ public final class WifiDisplayStatus implements Parcelable { mActiveDisplayState = activeDisplayState; mActiveDisplay = activeDisplay; mDisplays = displays; mSessionInfo = (sessionInfo != null) ? sessionInfo : new WifiDisplaySessionInfo(); } /** Loading Loading @@ -151,6 +159,13 @@ public final class WifiDisplayStatus implements Parcelable { return mDisplays; } /** * Gets the Wifi display session info (required for certification only) */ public WifiDisplaySessionInfo getSessionInfo() { return mSessionInfo; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mFeatureState); Loading @@ -168,6 +183,8 @@ public final class WifiDisplayStatus implements Parcelable { for (WifiDisplay display : mDisplays) { display.writeToParcel(dest, flags); } mSessionInfo.writeToParcel(dest, flags); } @Override Loading @@ -183,6 +200,7 @@ public final class WifiDisplayStatus implements Parcelable { + ", activeDisplayState=" + mActiveDisplayState + ", activeDisplay=" + mActiveDisplay + ", displays=" + Arrays.toString(mDisplays) + ", sessionInfo=" + mSessionInfo + "}"; } }