Random Musings on the Android 17 Beta 2

Less than two weeks after the release of Android 17 Beta 1 (and its associated random musings), Beta 2 dropped. And since the “Platform Stability milestone” is slated for March, we could get that in just a few days.

😑

What You Should Test Very Soon

While the whole “bubbles” thing seems cute, and while Google thinks that just supporting multi-window is sufficient… I recommend testing it.

If your app might need to talk to devices on the local network, I also recommend examining ACCESS_LOCAL_NETWORK closely. Google’s documentation on this is very muddled:

What Seems Nice

The ACTION_PICK_CONTACTS API, for getting user-specified field-level access to contact data, seems promising.

The ACTION_OPEN_EYE_DROPPER API, for getting a specific on-screen color from the user, is interesting.

What Seems Cute But Largely Pointless

There is a new “handoff” API, centered around setHandoffEnabled() on Activity, that enables “handing off” running apps between devices, such as a phone and a tablet. My guess is that the percentage of Android app users owning 2+ devices is very low and will not be increasing much.

What Might Be Bubblicious

A task can now have a TaskLocation, “that consists of the host display identifier and rectangular bounds in the pixel-based coordinate system relative to host display”.

What Is Going Away

There had been a setContentCaptureEnabled() function on ContentCaptureManager to opt out of content capture. That is now deprecated – use FLAG_SECURE.

The Bluetooth SCO support in AudioManager is largely deprecated, as they are routing you to newer “communication device” APIs.

isCredential() and setIsCredential() on View are deprecated, as “the purpose and usage expectations of this property were never clearly defined”. Frankly, we can say that about a lot of the Android SDK.

What Else Seems Interesting

There is a new nativeService attribute, presumably going on the <service> manifest element. This will bypass the Android Runtime for the process hosting the service, and instead loads a native library of yours. For isolated services that eschew the Android SDK, this avoids the overhead of the Android Runtime.

There are 7 new permissions, though most are role-specific.

There is a new Notification.Metric class and related classes like Notification.Metric.FixedFloat, but it is unclear what they are for.

DocumentsProvider now offers an API for trash.

A network security policy can now request domain encryption modes.