Random Musings on the Android 17 Beta 1

Last time around, with Android 16, we had two developer previews before a beta. This time, not so much. We went straight to Beta 1 for Android 17. Not only did we lose months of developer preview time, but Beta 1 came out three weeks later than did Android 16 Beta 1.

The good news is: there is not all that much in this release. The bad news is: the point of the release seems to be to break apps. Whether it’s immediately or a year out when the Android 17 targetSdk becomes required, there is quite a bit in this release that might screw up your app. While things like adaptive screens and background audio hardening get all the attention:

There is a fair bit of documentation, but it is a bit disjointed. For example, the Android 17 Beta 1 announcement blog post mentions a change to the size of custom notification views that takes effect when you move to target Android 17… but the page on behavior changes for targeting Android 17 does not mention it.

Other documentation bugs include:

  • The API differences report claims a lot of changes were made in API Level 1 when that does not appear to be the case

  • They claim to have added a new DEVICE_PROFILE_FITNESS_TRACKER companion request, but that seems to have been around for years

  • While some places in the docs indicate that Android 17 will result in an API version of 37, note that Build.VERSION_CODES.CINNAMON_BUN is 10000 for Beta 1, continuing a long-standing tradition of using high temporary values for new version codes until the API changes stabilize

(though I do appreciate the choice of cinnamon bun as the tasty treat for this release! 😋)

My usual random musings focus on changes in the API differences report that do not seem to be covered elsewhere. Android 17 Beta 1 is a tiny release in terms of API changes, so there is not much to report:

  • FINGERPRINT_SERVICE is being officially removed from Context. Since that system service has not been around in a while, hopefully this will not affect you.

  • There is a new STREAM_ASSISTANT volume level defined in AudioManager

  • There is a new ACTION_SUPERVISION_SETTINGS in Settings. This action string may “show screen to manage supervision settings”. While the documentation does not state this, please assume that any given device might not offer this screen and plan accordingly. Personally, I worry about the potential ramifications of Android getting capabilities like X-ray vision that would be enabled in a super-vision screen.

  • Wait… I am now receiving word that “supervision settings” may not refer to actual super-vision powers. Carry on!

  • startSafeBrowsing() on WebView is now deprecated. Unsafe browsing presumably is still supported.