Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c26b50dd authored by Guojing Yuan's avatar Guojing Yuan
Browse files

[CDM] Add new Medical profile

Bug: 414859687
Test: CTS
Flag: android.companion.enable_medical_profile
Change-Id: I5c7d6118ea0d714e1747ae0b6305fe23e43896c9
parent 4b3f043a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -292,6 +292,7 @@ package android {
    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_GLASSES = "android.permission.REQUEST_COMPANION_PROFILE_GLASSES";
    field @FlaggedApi("android.companion.enable_medical_profile") public static final String REQUEST_COMPANION_PROFILE_MEDICAL = "android.permission.REQUEST_COMPANION_PROFILE_MEDICAL";
    field public static final String REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING = "android.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING";
    field @FlaggedApi("android.companion.virtualdevice.flags.enable_limited_vdm_role") public static final String REQUEST_COMPANION_PROFILE_VIRTUAL_DEVICE = "android.permission.REQUEST_COMPANION_PROFILE_VIRTUAL_DEVICE";
    field public static final String REQUEST_COMPANION_PROFILE_WATCH = "android.permission.REQUEST_COMPANION_PROFILE_WATCH";
@@ -10289,6 +10290,7 @@ package android.companion {
    field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER) public static final String DEVICE_PROFILE_COMPUTER = "android.app.role.COMPANION_DEVICE_COMPUTER";
    field @FlaggedApi("android.companion.band_device_profile") @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH) public static final String DEVICE_PROFILE_FITNESS_TRACKER = "android.app.role.COMPANION_DEVICE_FITNESS_TRACKER";
    field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_GLASSES) public static final String DEVICE_PROFILE_GLASSES = "android.app.role.COMPANION_DEVICE_GLASSES";
    field @FlaggedApi("android.companion.enable_medical_profile") @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_MEDICAL) public static final String DEVICE_PROFILE_MEDICAL = "android.app.role.COMPANION_DEVICE_MEDICAL";
    field @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING) public static final String DEVICE_PROFILE_NEARBY_DEVICE_STREAMING = "android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING";
    field @FlaggedApi("android.companion.virtualdevice.flags.enable_limited_vdm_role") @RequiresPermission(android.Manifest.permission.REQUEST_COMPANION_PROFILE_VIRTUAL_DEVICE) public static final String DEVICE_PROFILE_VIRTUAL_DEVICE = "android.app.role.COMPANION_DEVICE_VIRTUAL_DEVICE";
    field public static final String DEVICE_PROFILE_WATCH = "android.app.role.COMPANION_DEVICE_WATCH";
@@ -10339,7 +10341,7 @@ package android.companion {
  public final class CompanionDeviceManager {
    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 @RequiresPermission(anyOf={android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH, android.Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER, android.Manifest.permission.REQUEST_COMPANION_PROFILE_MEDICAL, 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 @RequiresPermission(android.Manifest.permission.DELIVER_COMPANION_MESSAGES) public void attachSystemDataTransport(int, @NonNull java.io.InputStream, @NonNull java.io.OutputStream) throws android.companion.DeviceNotAssociatedException;
    method @Nullable public android.content.IntentSender buildAssociationCancellationIntent();
    method @Nullable public android.content.IntentSender buildPermissionTransferUserConsentIntent(int) throws android.companion.DeviceNotAssociatedException;
+14 −0
Original line number Diff line number Diff line
@@ -113,6 +113,20 @@ public final class AssociationRequest implements Parcelable {
    @RequiresPermission(Manifest.permission.REQUEST_COMPANION_PROFILE_GLASSES)
    public static final String DEVICE_PROFILE_GLASSES = "android.app.role.COMPANION_DEVICE_GLASSES";

    /**
     * Device profile: A medical device, e.g. blood sugar level monitor, heart rate monitor, etc.
     *
     * If specified, the current request may have a modified UI to highlight that the device being
     * set up is a medical 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_MEDICAL} in the manifest.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_MEDICAL_PROFILE)
    @RequiresPermission(Manifest.permission.REQUEST_COMPANION_PROFILE_MEDICAL)
    public static final String DEVICE_PROFILE_MEDICAL = "android.app.role.COMPANION_DEVICE_MEDICAL";

    /**
     * Device profile: a wearable device capable of sensing its surroundings.
     * <p>
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,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_MEDICAL;
import static android.Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH;
import static android.companion.AssociationInfo.METADATA_TIMESTAMP;
import static android.graphics.drawable.Icon.TYPE_URI;
@@ -591,6 +592,7 @@ public final class CompanionDeviceManager {
    @RequiresPermission(anyOf = {
            REQUEST_COMPANION_PROFILE_WATCH,
            REQUEST_COMPANION_PROFILE_COMPUTER,
            REQUEST_COMPANION_PROFILE_MEDICAL,
            REQUEST_COMPANION_PROFILE_APP_STREAMING,
            REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION
            }, conditional = true)
+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ public final class CompanionResources {
    public static final int PERMISSION_CREATE_VIRTUAL_DEVICE = 12;
    public static final int PERMISSION_ADD_MIRROR_DISPLAY = 13;
    public static final int PERMISSION_ADD_TRUSTED_DISPLAY = 14;
    public static final int PERMISSION_SCHEDULE_EXACT_ALARM = 15;
    public static final int PERMISSION_BYPASS_DND = 16;

    // Constants used by AssociationRequestProcessor and CompanionAssociationActivity
    public static final String EXTRA_APPLICATION_CALLBACK = "application_callback";
+9 −0
Original line number Diff line number Diff line
@@ -4612,6 +4612,15 @@
    <permission android:name="android.permission.REQUEST_COMPANION_PROFILE_GLASSES"
        android:protectionLevel="normal" />
    <!-- Allows application to request to associate with a
         {@link android.companion.AssociationRequest#DEVICE_PROFILE_MEDICAL} device via
         {@link android.companion.CompanionDeviceManager}.
         @FlaggedApi(android.companion.Flags.FLAG_ENABLE_MEDICAL_PROFILE)
    -->
    <permission android:name="android.permission.REQUEST_COMPANION_PROFILE_MEDICAL"
        android:protectionLevel="normal"
        android:featureFlag="android.companion.enable_medical_profile" />
    <!-- Allows application to request to be associated with a virtual device capable of streaming
         Android applications
         ({@link android.companion.AssociationRequest#DEVICE_PROFILE_APP_STREAMING})
Loading