Android New Version 11’s Power Menu Google may turn into a Control Center for home automation shortcuts

Android Feb 21, 2020

Next Google released Android 11 Developer Preview 1 past, we found the main surface-level changes in our initial hands-on. It seems that Google will once more leave the majority of the interface changes and new features for a public beta after an announcement at Google I/O 2020. However, we discovered several in-development interface tweaks that suggest big changes are coming for the Android OS in 2020. We discovered that Google may put a media player within the Quick Settings panel, separate the notification shade from the fast Settings panel, and now, we’ve found that Google could also be tweaking the facility menu to accommodate user-selected home automation shortcuts.

On my Pixel 2 XL running Android 11 DP1, I managed to activate a replacement UI for the long-press power menu, as shown below. the prevailing power menu icons, including Emergency, Screenshot, Restart, and Power off, shift to the highest of the screen, leaving tons of empty space underneath. additionally , a replacement “Home” text appears above the icons. The icons shifting upward suggests that Google plans on adding something to refill the empty space, which we initially assumed was in preparation for the new Quick Access Wallet feature that’s now in Android 11. However, the presence of the “Home” text raises the question of why it’s there—could Google be within the process of making categories within the power menu for various sorts of actions?

xda-developers

Digging into the code, we discovered multiple classes in System UI Google associated with a feature called “Controls.” The code suggests that the user can set shortcuts as “favorites” to point out up during this menu, which are stored by the system in an XML file with the shortcuts’ IDs, titles, types, and components. There are new activities in System UI Google associated with Controls:

Controls Flavoring Activity and Controls Provider Selector Activity. Launching the previous raises a permission denial as it’s an unexported activity and that we don’t have root access while launching the latter brings up the subsequent UI:

Unfortunately, this UI is empty at the instant , so we aren’t ready to add our own favorite shortcuts to the facility menu. We found references to a replacement permission called “android.permission.BIND_CONTROLS” and a replacement service called “android.service.controls.Controls Provider Service” that suggest that third-party applications are going to be ready to create a “Controls” service that the Android System can bind to and show during this list, very similar to with Quick Settings tiles. That there are not any third-party applications that support the “Controls” API would explain why the activity shown above is empty at the instant .

It looks like Google is taking cues from the iOS center here, though we aren’t entirely sure why Google is functioning on this feature within the first place as long as the fast Settings panel already exists, and it are often crammed with custom shortcuts. We’ll keep track of the event of this feature just in case anything changes in future Android 11 Developer Previews.

Update 1: Possibly for Home Automation Controls

After publishing this text , The updated framework.jar in Android 11 reveals what sorts of shortcuts may appear within the “Controls” menu within the power menu. He discovered an inventory of appliance types that are accepted as “valid device types” within the Controls service. Here is that the full list:

Supported Home Automation Device Types for Android 11 Controls API

private static final int NUM_CONCRETE_TYPES = 51;
private static final int NUM_GENERIC_TYPES = 7;
public static final int TYPE_AC_HEATER = 1;
public static final int TYPE_AC_UNIT = 2;
public static final int TYPE_AIR_FRESHENER = 3;
public static final int TYPE_AIR_PURIFIER = 4;
public static final int TYPE_AWNING = 33;
public static final int TYPE_BLINDS = 34;
public static final int TYPE_CAMERA = 50;
public static final int TYPE_CLOSET = 35;
public static final int TYPE_COFFEE_MAKER = 5;
public static final int TYPE_CURTAIN = 36;
public static final int TYPE_DEHUMIDIFIER = 6;
public static final int TYPE_DISHWASHER = 24;
public static final int TYPE_DISPLAY = 7;
public static final int TYPE_DOOR = 37;
public static final int TYPE_DOORBELL = 51;
public static final int TYPE_DRAWER = 38;
public static final int TYPE_DRYER = 25;
public static final int TYPE_FAN = 8;
public static final int TYPE_GARAGE = 39;
public static final int TYPE_GATE = 40;
public static final int TYPE_GENERIC_ARM_DISARM = -5;
public static final int TYPE_GENERIC_LOCK_UNLOCK = -4;
public static final int TYPE_GENERIC_ON_OFF = -1;
public static final int TYPE_GENERIC_OPEN_CLOSE = -3;
public static final int TYPE_GENERIC_START_STOP = -2;
public static final int TYPE_GENERIC_TEMP_SETTING = -6;
public static final int TYPE_GENERIC_VIEWSTREAM = -7;
public static final int TYPE_HEATER = 0x2F;
public static final int TYPE_HOOD = 10;
public static final int TYPE_HUMIDIFIER = 11;
public static final int TYPE_KETTLE = 12;
public static final int TYPE_LIGHT = 13;
public static final int TYPE_LOCK = 45;
public static final int TYPE_MICROWAVE = 14;
public static final int TYPE_MOP = 26;
public static final int TYPE_MOWER = 27;
public static final int TYPE_MULTICOOKER = 28;
public static final int TYPE_OUTLET = 15;
public static final int TYPE_PERGOLA = 41;
public static final int TYPE_RADIATOR = 16;
public static final int TYPE_REFRIGERATOR = 0x30;
public static final int TYPE_REMOTE_CONTROL = 17;
public static final int TYPE_SECURITY_SYSTEM = 46;
public static final int TYPE_SET_TOP = 18;
public static final int TYPE_SHOWER = 29;
public static final int TYPE_SHUTTER = 42;
public static final int TYPE_SPRINKLER = 30;
public static final int TYPE_STANDMIXER = 19;
public static final int TYPE_STYLER = 20;
public static final int TYPE_SWITCH = 21;
public static final int TYPE_THERMOSTAT = 49;
public static final int TYPE_TV = 22;
public static final int TYPE_UNKNOWN = 0;
public static final int TYPE_VACUUM = 0x20;
public static final int TYPE_VALVE = 44;
public static final int TYPE_WASHER = 0x1F;
public static final int TYPE_WATER_HEATER = 23;
public static final int TYPE_WINDOW = 43;

It’s possible that Google will allow you to regulate your smart home appliances through the facility menu in Android 11. This explanation is sensible in context of the “home” text appearing up top. We’ll update you if we learn more about this feature or if we manage to urge our own shortcut to seem within the menu.

Update 2: Controls Provider Hacked to point out a custom “Lightbulb” app

Here’s a screenshot provided by developer Kieron Quinn showing a fast “Lightbulb” app he put together and managed to surface within the “Controls Providers” activity in Android 11. Tapping on the icon currently makes the system crash. We’ll update this post if we manage to urge it working beyond this.

Platform Architecture

developer.android
Android 11 Developer Preview | Android Developers
How the Developer Preview works, the timeline, and what's included.

Source: