Loading core/java/android/companion/AssociationRequest.java +4 −2 Original line number Diff line number Diff line Loading @@ -64,10 +64,12 @@ public final class AssociationRequest implements Parcelable { * set up is a specific kind of device, and some extra permissions may be granted to the app * as a result. * * Using it requires declaring uses-permission * {@link android.Manifest.permission#REQUEST_COMPANION_PROFILE_WATCH} in the manifest. * * @see AssociationRequest.Builder#setDeviceProfile */ public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH"; public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH"; /** @hide */ @StringDef(value = { DEVICE_PROFILE_WATCH }) Loading services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +17 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainRunna import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.MINUTES; import android.Manifest; import android.annotation.CheckResult; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -409,6 +410,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind checkCallerIsSystemOr(callingPackage); int userId = getCallingUserId(); checkUsesFeature(callingPackage, userId); checkProfilePermissions(request); mFindDeviceCallback = callback; mRequest = request; Loading Loading @@ -519,6 +521,21 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } } private void checkProfilePermissions(AssociationRequest request) { checkProfilePermission(request, AssociationRequest.DEVICE_PROFILE_WATCH, Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH); } private void checkProfilePermission( AssociationRequest request, String profile, String permission) { if (profile.equals(request.getDeviceProfile()) && getContext().checkCallingOrSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Using " + profile + " requires " + permission); } } @Override public PendingIntent requestNotificationAccess(ComponentName component) throws RemoteException { Loading Loading
core/java/android/companion/AssociationRequest.java +4 −2 Original line number Diff line number Diff line Loading @@ -64,10 +64,12 @@ public final class AssociationRequest implements Parcelable { * set up is a specific kind of device, and some extra permissions may be granted to the app * as a result. * * Using it requires declaring uses-permission * {@link android.Manifest.permission#REQUEST_COMPANION_PROFILE_WATCH} in the manifest. * * @see AssociationRequest.Builder#setDeviceProfile */ public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH"; public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH"; /** @hide */ @StringDef(value = { DEVICE_PROFILE_WATCH }) Loading
services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +17 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainRunna import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.MINUTES; import android.Manifest; import android.annotation.CheckResult; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -409,6 +410,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind checkCallerIsSystemOr(callingPackage); int userId = getCallingUserId(); checkUsesFeature(callingPackage, userId); checkProfilePermissions(request); mFindDeviceCallback = callback; mRequest = request; Loading Loading @@ -519,6 +521,21 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } } private void checkProfilePermissions(AssociationRequest request) { checkProfilePermission(request, AssociationRequest.DEVICE_PROFILE_WATCH, Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH); } private void checkProfilePermission( AssociationRequest request, String profile, String permission) { if (profile.equals(request.getDeviceProfile()) && getContext().checkCallingOrSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Using " + profile + " requires " + permission); } } @Override public PendingIntent requestNotificationAccess(ComponentName component) throws RemoteException { Loading