Random Musings on the Android 16 Beta 1
Android 16 Beta 1 probably is the last Android 16 pre-release version with significant API changes. So, in addition to the blog post and the features-and-changes list, let’s see what is was modified with less fanfare.
What Else Changed with Notifications?
One of the major items that was announced is support for “progress-centric notifications”, also known as “Live Updates”, because branding is hard.
In addition, though, they have added the concept of “promoted notifications”. You can see if your app is allowed to do this, and if not, ask the user to allow it. It is unclear how to designate individual notifications as “promoted”, but there is a flag to identify those that were. Quoting the docs:
Properly formatted priority notifications are elevated in appearance. For example they may be able to use colors, have richer progress bars, show as chips in the status bar, and/or permanently appear on always-on-displays. This functionality is intended to be reserved for user initiated ongoing activities like navigation, phone calls, and ride sharing.
Oddly, that rationale is part of the “Live Updates” definition. Perhaps ProgressStyle
notifications will get the “promoted” treatment, if the user allows.
What Is “Ranging”, And Does It Involve Herding Livestock?
There is a new RangingManager
system service.
This allows you to find out what sorts of technology is available on the device to
determine the device’s location relative to local signals, using various Bluetooth
specs or WiFi round-trip times. If 1+ of those technologies are available, you can
open a RangingSession
to start and stop trying to determine your device’s relative location.
There is also a new hardware feature to be able to filter installs to only be on devices that support Bluetooth Channel Sounding.
What Sounds Like a National Security Issue?
There is a new SatelliteManager
,
described as:
Manages satellite states such as monitoring enabled state and operations such as provisioning, pointing, messaging, location sharing, etc.
Notably, that description does not say whose satellites you get to manage this way.
(in reality, this seems to be tied to “satphone” telephony)
What Left Without Saying “Goodbye”?
android.app.appsearch.functions
has vanished. Other app functions-related APIs were retained.
They also removed intentMatchingFlags
, used to refine the Intent
matching rules
that were applied to your components.
BATTERY_PROPERTY_STATE_OF_HEALTH
, a BatteryManager
value to determine how healthy
the battery is, was eliminated.
The removed setFrameRate()
on Surface
and other frame rate-related values.
What Came Back to Life?
isImportantWhileForeground()
on JobInfo
was deprecated and now is undeprecated.
In related news, “undeprecated” is a word, apparently.
What Holes Got Plugged?
It would appear that the 16KB page boundary change for native libraries did not go as smoothly as desired, as you can opt into supporting 4KB mode.
What Else Showed Up?
There is a new TetheringManager
.
Probably this is a system service, though they did not add an associated name for it
to Context
. This is for controlling tethering functionality (e.g., WiFi hotspot, presumably).
TtsSpan
, for providing more detail for text-to-speech, now supports
a duration type.