Merge "Introduce COMPANION_COMPUTER profile for Phone Hub"
This commit is contained in:
@@ -153,8 +153,12 @@ package android {
|
||||
field public static final String RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH";
|
||||
field public static final String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
|
||||
field public static final String REORDER_TASKS = "android.permission.REORDER_TASKS";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_APP_STREAMING = "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION = "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_COMPUTER = "android.permission.REQUEST_COMPANION_PROFILE_COMPUTER";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_WATCH = "android.permission.REQUEST_COMPANION_PROFILE_WATCH";
|
||||
field public static final String REQUEST_COMPANION_RUN_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND";
|
||||
field public static final String REQUEST_COMPANION_SELF_MANAGED = "android.permission.REQUEST_COMPANION_SELF_MANAGED";
|
||||
field public static final String REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND = "android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND";
|
||||
field public static final String REQUEST_COMPANION_USE_DATA_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND";
|
||||
field public static final String REQUEST_DELETE_PACKAGES = "android.permission.REQUEST_DELETE_PACKAGES";
|
||||
@@ -8891,9 +8895,14 @@ package android.companion {
|
||||
method public int describeContents();
|
||||
method @Nullable public String getDeviceProfile();
|
||||
method @Nullable public CharSequence getDisplayName();
|
||||
method public boolean isForceConfirmation();
|
||||
method public boolean isSelfManaged();
|
||||
method public boolean isSingleDevice();
|
||||
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.companion.AssociationRequest> CREATOR;
|
||||
field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING) public static final String DEVICE_PROFILE_APP_STREAMING = "android.app.role.COMPANION_DEVICE_APP_STREAMING";
|
||||
field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION) public static final String DEVICE_PROFILE_AUTOMOTIVE_PROJECTION = "android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION";
|
||||
field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER) public static final String DEVICE_PROFILE_COMPUTER = "android.app.role.COMPANION_DEVICE_COMPUTER";
|
||||
field public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH";
|
||||
}
|
||||
|
||||
@@ -8903,6 +8912,8 @@ package android.companion {
|
||||
method @NonNull public android.companion.AssociationRequest build();
|
||||
method @NonNull public android.companion.AssociationRequest.Builder setDeviceProfile(@NonNull String);
|
||||
method @NonNull public android.companion.AssociationRequest.Builder setDisplayName(@NonNull CharSequence);
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public android.companion.AssociationRequest.Builder setForceConfirmation(boolean);
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public android.companion.AssociationRequest.Builder setSelfManaged(boolean);
|
||||
method @NonNull public android.companion.AssociationRequest.Builder setSingleDevice(boolean);
|
||||
}
|
||||
|
||||
@@ -8938,8 +8949,8 @@ package android.companion {
|
||||
}
|
||||
|
||||
public final class CompanionDeviceManager {
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH, "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING", "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"}, conditional=true) public void associate(@NonNull android.companion.AssociationRequest, @NonNull android.companion.CompanionDeviceManager.Callback, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH, "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING", "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"}, conditional=true) public void associate(@NonNull android.companion.AssociationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.companion.CompanionDeviceManager.Callback);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH, android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER, android.Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING, android.Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION}, conditional=true) public void associate(@NonNull android.companion.AssociationRequest, @NonNull android.companion.CompanionDeviceManager.Callback, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH, android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER, android.Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING, android.Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION}, conditional=true) public void associate(@NonNull android.companion.AssociationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.companion.CompanionDeviceManager.Callback);
|
||||
method @Deprecated public void disassociate(@NonNull String);
|
||||
method public void disassociate(int);
|
||||
method @Deprecated @NonNull public java.util.List<java.lang.String> getAssociations();
|
||||
|
||||
@@ -269,9 +269,6 @@ package android {
|
||||
field public static final String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
|
||||
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
|
||||
field public static final String RENOUNCE_PERMISSIONS = "android.permission.RENOUNCE_PERMISSIONS";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_APP_STREAMING = "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING";
|
||||
field public static final String REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION = "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION";
|
||||
field public static final String REQUEST_COMPANION_SELF_MANAGED = "android.permission.REQUEST_COMPANION_SELF_MANAGED";
|
||||
field @Deprecated public static final String REQUEST_NETWORK_SCORES = "android.permission.REQUEST_NETWORK_SCORES";
|
||||
field public static final String REQUEST_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE";
|
||||
field public static final String RESET_PASSWORD = "android.permission.RESET_PASSWORD";
|
||||
@@ -2265,18 +2262,6 @@ package android.companion {
|
||||
method public boolean isSelfManaged();
|
||||
}
|
||||
|
||||
public final class AssociationRequest implements android.os.Parcelable {
|
||||
method @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public boolean isForceConfirmation();
|
||||
method @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public boolean isSelfManaged();
|
||||
field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING) public static final String DEVICE_PROFILE_APP_STREAMING = "android.app.role.COMPANION_DEVICE_APP_STREAMING";
|
||||
field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION) public static final String DEVICE_PROFILE_AUTOMOTIVE_PROJECTION = "android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION";
|
||||
}
|
||||
|
||||
public static final class AssociationRequest.Builder {
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public android.companion.AssociationRequest.Builder setForceConfirmation(boolean);
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED) public android.companion.AssociationRequest.Builder setSelfManaged(boolean);
|
||||
}
|
||||
|
||||
public final class CompanionDeviceManager {
|
||||
method @RequiresPermission("android.permission.MANAGE_COMPANION_DEVICES") public void addOnAssociationsChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.companion.CompanionDeviceManager.OnAssociationsChangedListener);
|
||||
method @RequiresPermission(android.Manifest.permission.ASSOCIATE_COMPANION_DEVICES) public void associate(@NonNull String, @NonNull android.net.MacAddress, @NonNull byte[]);
|
||||
|
||||
@@ -27,7 +27,6 @@ import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.StringDef;
|
||||
import android.annotation.SystemApi;
|
||||
import android.annotation.UserIdInt;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.os.Build;
|
||||
@@ -38,6 +37,8 @@ import android.provider.OneTimeUseBuilder;
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.DataClass;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -88,10 +89,8 @@ public final class AssociationRequest implements Parcelable {
|
||||
* request to be associated with such devices.
|
||||
*
|
||||
* @see AssociationRequest.Builder#setDeviceProfile
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING)
|
||||
@SystemApi
|
||||
public static final String DEVICE_PROFILE_APP_STREAMING =
|
||||
"android.app.role.COMPANION_DEVICE_APP_STREAMING";
|
||||
|
||||
@@ -103,15 +102,29 @@ public final class AssociationRequest implements Parcelable {
|
||||
* allowed to request to be associated with such devices.
|
||||
*
|
||||
* @see AssociationRequest.Builder#setDeviceProfile
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION)
|
||||
@SystemApi
|
||||
public static final String DEVICE_PROFILE_AUTOMOTIVE_PROJECTION =
|
||||
"android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION";
|
||||
|
||||
/**
|
||||
* Device profile: Allows the companion app to access notification, recent photos and media for
|
||||
* computer cross-device features.
|
||||
*
|
||||
* Only applications that have been granted
|
||||
* {@link android.Manifest.permission#REQUEST_COMPANION_PROFILE_COMPUTER} are allowed to
|
||||
* request to be associated with such devices.
|
||||
*
|
||||
* @see AssociationRequest.Builder#setDeviceProfile
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER)
|
||||
public static final String DEVICE_PROFILE_COMPUTER =
|
||||
"android.app.role.COMPANION_DEVICE_COMPUTER";
|
||||
|
||||
/** @hide */
|
||||
@StringDef(value = { DEVICE_PROFILE_WATCH })
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@StringDef(value = { DEVICE_PROFILE_WATCH, DEVICE_PROFILE_COMPUTER,
|
||||
DEVICE_PROFILE_AUTOMOTIVE_PROJECTION, DEVICE_PROFILE_APP_STREAMING })
|
||||
public @interface DeviceProfile {}
|
||||
|
||||
/**
|
||||
@@ -241,10 +254,7 @@ public final class AssociationRequest implements Parcelable {
|
||||
* Whether the association is to be managed by the companion application.
|
||||
*
|
||||
* @see Builder#setSelfManaged(boolean)
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(REQUEST_COMPANION_SELF_MANAGED)
|
||||
public boolean isSelfManaged() {
|
||||
return mSelfManaged;
|
||||
}
|
||||
@@ -255,10 +265,7 @@ public final class AssociationRequest implements Parcelable {
|
||||
* required.
|
||||
*
|
||||
* @see Builder#setForceConfirmation(boolean)
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(REQUEST_COMPANION_SELF_MANAGED)
|
||||
public boolean isForceConfirmation() {
|
||||
return mForceConfirmation;
|
||||
}
|
||||
@@ -374,9 +381,7 @@ public final class AssociationRequest implements Parcelable {
|
||||
* Requests for creating "self-managed" association MUST provide a Display name.
|
||||
*
|
||||
* @see #setDisplayName(CharSequence)
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(REQUEST_COMPANION_SELF_MANAGED)
|
||||
@NonNull
|
||||
public Builder setSelfManaged(boolean selfManaged) {
|
||||
@@ -389,10 +394,7 @@ public final class AssociationRequest implements Parcelable {
|
||||
* Indicates whether the application would prefer the CompanionDeviceManager to collect an
|
||||
* explicit confirmation from the user before creating an association, even if such
|
||||
* confirmation is not required.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(REQUEST_COMPANION_SELF_MANAGED)
|
||||
@NonNull
|
||||
public Builder setForceConfirmation(boolean forceConfirmation) {
|
||||
@@ -639,10 +641,10 @@ public final class AssociationRequest implements Parcelable {
|
||||
};
|
||||
|
||||
@DataClass.Generated(
|
||||
time = 1638962248060L,
|
||||
time = 1643238443303L,
|
||||
codegenVersion = "1.0.23",
|
||||
sourceFile = "frameworks/base/core/java/android/companion/AssociationRequest.java",
|
||||
inputSignatures = "public static final java.lang.String DEVICE_PROFILE_WATCH\npublic static final @android.annotation.RequiresPermission @android.annotation.SystemApi java.lang.String DEVICE_PROFILE_APP_STREAMING\npublic static final @android.annotation.RequiresPermission @android.annotation.SystemApi java.lang.String DEVICE_PROFILE_AUTOMOTIVE_PROJECTION\nprivate final boolean mSingleDevice\nprivate final @com.android.internal.util.DataClass.PluralOf(\"deviceFilter\") @android.annotation.NonNull java.util.List<android.companion.DeviceFilter<?>> mDeviceFilters\nprivate final @android.annotation.Nullable @android.companion.AssociationRequest.DeviceProfile java.lang.String mDeviceProfile\nprivate final @android.annotation.Nullable java.lang.CharSequence mDisplayName\nprivate final boolean mSelfManaged\nprivate final boolean mForceConfirmation\nprivate @android.annotation.Nullable java.lang.String mPackageName\nprivate @android.annotation.UserIdInt int mUserId\nprivate @android.annotation.Nullable java.lang.String mDeviceProfilePrivilegesDescription\nprivate final long mCreationTime\nprivate boolean mSkipPrompt\npublic @android.annotation.Nullable @android.companion.AssociationRequest.DeviceProfile java.lang.String getDeviceProfile()\npublic @android.annotation.Nullable java.lang.CharSequence getDisplayName()\npublic @android.annotation.SystemApi @android.annotation.RequiresPermission boolean isSelfManaged()\npublic @android.annotation.SystemApi @android.annotation.RequiresPermission boolean isForceConfirmation()\npublic boolean isSingleDevice()\npublic void setPackageName(java.lang.String)\npublic void setUserId(int)\npublic void setDeviceProfilePrivilegesDescription(java.lang.String)\npublic void setSkipPrompt(boolean)\npublic @android.annotation.NonNull @android.compat.annotation.UnsupportedAppUsage java.util.List<android.companion.DeviceFilter<?>> getDeviceFilters()\nclass AssociationRequest extends java.lang.Object implements [android.os.Parcelable]\nprivate boolean mSingleDevice\nprivate @android.annotation.Nullable java.util.ArrayList<android.companion.DeviceFilter<?>> mDeviceFilters\nprivate @android.annotation.Nullable java.lang.String mDeviceProfile\nprivate @android.annotation.Nullable java.lang.CharSequence mDisplayName\nprivate boolean mSelfManaged\nprivate boolean mForceConfirmation\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setSingleDevice(boolean)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder addDeviceFilter(android.companion.DeviceFilter<?>)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setDeviceProfile(java.lang.String)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setDisplayName(java.lang.CharSequence)\npublic @android.annotation.SystemApi @android.annotation.RequiresPermission @android.annotation.NonNull android.companion.AssociationRequest.Builder setSelfManaged(boolean)\npublic @android.annotation.SystemApi @android.annotation.RequiresPermission @android.annotation.NonNull android.companion.AssociationRequest.Builder setForceConfirmation(boolean)\npublic @android.annotation.NonNull @java.lang.Override android.companion.AssociationRequest build()\nclass Builder extends android.provider.OneTimeUseBuilder<android.companion.AssociationRequest> implements []\n@com.android.internal.util.DataClass(genConstructor=false, genToString=true, genEqualsHashCode=true, genHiddenGetters=true, genParcelable=true, genConstDefs=false)")
|
||||
inputSignatures = "public static final java.lang.String DEVICE_PROFILE_WATCH\npublic static final @android.annotation.RequiresPermission java.lang.String DEVICE_PROFILE_APP_STREAMING\npublic static final @android.annotation.RequiresPermission java.lang.String DEVICE_PROFILE_AUTOMOTIVE_PROJECTION\npublic static final @android.annotation.RequiresPermission java.lang.String DEVICE_PROFILE_COMPUTER\nprivate final boolean mSingleDevice\nprivate final @com.android.internal.util.DataClass.PluralOf(\"deviceFilter\") @android.annotation.NonNull java.util.List<android.companion.DeviceFilter<?>> mDeviceFilters\nprivate final @android.annotation.Nullable @android.companion.AssociationRequest.DeviceProfile java.lang.String mDeviceProfile\nprivate final @android.annotation.Nullable java.lang.CharSequence mDisplayName\nprivate final boolean mSelfManaged\nprivate final boolean mForceConfirmation\nprivate @android.annotation.Nullable java.lang.String mPackageName\nprivate @android.annotation.UserIdInt int mUserId\nprivate @android.annotation.Nullable java.lang.String mDeviceProfilePrivilegesDescription\nprivate final long mCreationTime\nprivate boolean mSkipPrompt\npublic @android.annotation.Nullable @android.companion.AssociationRequest.DeviceProfile java.lang.String getDeviceProfile()\npublic @android.annotation.Nullable java.lang.CharSequence getDisplayName()\npublic boolean isSelfManaged()\npublic boolean isForceConfirmation()\npublic boolean isSingleDevice()\npublic void setPackageName(java.lang.String)\npublic void setUserId(int)\npublic void setDeviceProfilePrivilegesDescription(java.lang.String)\npublic void setSkipPrompt(boolean)\npublic @android.annotation.NonNull @android.compat.annotation.UnsupportedAppUsage java.util.List<android.companion.DeviceFilter<?>> getDeviceFilters()\nclass AssociationRequest extends java.lang.Object implements [android.os.Parcelable]\nprivate boolean mSingleDevice\nprivate @android.annotation.Nullable java.util.ArrayList<android.companion.DeviceFilter<?>> mDeviceFilters\nprivate @android.annotation.Nullable java.lang.String mDeviceProfile\nprivate @android.annotation.Nullable java.lang.CharSequence mDisplayName\nprivate boolean mSelfManaged\nprivate boolean mForceConfirmation\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setSingleDevice(boolean)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder addDeviceFilter(android.companion.DeviceFilter<?>)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setDeviceProfile(java.lang.String)\npublic @android.annotation.NonNull android.companion.AssociationRequest.Builder setDisplayName(java.lang.CharSequence)\npublic @android.annotation.RequiresPermission @android.annotation.NonNull android.companion.AssociationRequest.Builder setSelfManaged(boolean)\npublic @android.annotation.RequiresPermission @android.annotation.NonNull android.companion.AssociationRequest.Builder setForceConfirmation(boolean)\npublic @android.annotation.NonNull @java.lang.Override android.companion.AssociationRequest build()\nclass Builder extends android.provider.OneTimeUseBuilder<android.companion.AssociationRequest> implements []\n@com.android.internal.util.DataClass(genConstructor=false, genToString=true, genEqualsHashCode=true, genHiddenGetters=true, genParcelable=true, genConstDefs=false)")
|
||||
@Deprecated
|
||||
private void __metadata() {}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.companion;
|
||||
|
||||
import static android.Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING;
|
||||
import static android.Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION;
|
||||
import static android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER;
|
||||
import static android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
@@ -264,6 +265,7 @@ public final class CompanionDeviceManager {
|
||||
@UserHandleAware
|
||||
@RequiresPermission(anyOf = {
|
||||
REQUEST_COMPANION_PROFILE_WATCH,
|
||||
REQUEST_COMPANION_PROFILE_COMPUTER,
|
||||
REQUEST_COMPANION_PROFILE_APP_STREAMING,
|
||||
REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION,
|
||||
}, conditional = true)
|
||||
@@ -318,6 +320,7 @@ public final class CompanionDeviceManager {
|
||||
@UserHandleAware
|
||||
@RequiresPermission(anyOf = {
|
||||
REQUEST_COMPANION_PROFILE_WATCH,
|
||||
REQUEST_COMPANION_PROFILE_COMPUTER,
|
||||
REQUEST_COMPANION_PROFILE_APP_STREAMING,
|
||||
REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION
|
||||
}, conditional = true)
|
||||
|
||||
@@ -3120,8 +3120,6 @@
|
||||
({@link android.companion.AssociationRequest#DEVICE_PROFILE_APP_STREAMING})
|
||||
by {@link android.companion.CompanionDeviceManager}.
|
||||
<p>Not for use by third-party applications.
|
||||
@hide
|
||||
@SystemApi
|
||||
-->
|
||||
<permission android:name="android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING"
|
||||
android:protectionLevel="signature|privileged" />
|
||||
@@ -3131,15 +3129,20 @@
|
||||
({@link android.companion.AssociationRequest#DEVICE_PROFILE_AUTOMOTIVE_PROJECTION})
|
||||
by {@link android.companion.CompanionDeviceManager}.
|
||||
<p>Not for use by third-party applications.
|
||||
@hide
|
||||
@SystemApi
|
||||
-->
|
||||
<permission android:name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"
|
||||
android:protectionLevel="internal|role" />
|
||||
|
||||
<!-- Allows application to request to be associated with a computer to share functionality
|
||||
and/or data with other devices, such as notifications, photos and media
|
||||
({@link android.companion.AssociationRequest#DEVICE_PROFILE_COMPUTER})
|
||||
by {@link android.companion.CompanionDeviceManager}.
|
||||
<p>Not for use by third-party applications.
|
||||
-->
|
||||
<permission android:name="android.permission.REQUEST_COMPANION_PROFILE_COMPUTER"
|
||||
android:protectionLevel="signature|privileged" />
|
||||
|
||||
<!-- Allows an application to create a "self-managed" association.
|
||||
@hide
|
||||
@SystemApi
|
||||
-->
|
||||
<permission android:name="android.permission.REQUEST_COMPANION_SELF_MANAGED"
|
||||
android:protectionLevel="signature|privileged" />
|
||||
|
||||
@@ -22,6 +22,7 @@ import static android.Manifest.permission.REQUEST_COMPANION_SELF_MANAGED;
|
||||
import static android.app.AppOpsManager.MODE_ALLOWED;
|
||||
import static android.companion.AssociationRequest.DEVICE_PROFILE_APP_STREAMING;
|
||||
import static android.companion.AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION;
|
||||
import static android.companion.AssociationRequest.DEVICE_PROFILE_COMPUTER;
|
||||
import static android.companion.AssociationRequest.DEVICE_PROFILE_WATCH;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.os.Binder.getCallingPid;
|
||||
@@ -62,6 +63,7 @@ final class PermissionsUtils {
|
||||
Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING);
|
||||
map.put(DEVICE_PROFILE_AUTOMOTIVE_PROJECTION,
|
||||
Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION);
|
||||
map.put(DEVICE_PROFILE_COMPUTER, Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER);
|
||||
|
||||
DEVICE_PROFILE_TO_PERMISSION = unmodifiableMap(map);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user