The Second Beta of Android 17



The Second Beta of Android 17 1

Posted by Matthew McCullough, VP Product Administration, Android Developer

The Second Beta of Android 17 2

At the moment we’re releasing the second beta of Android 17, persevering with our work to construct a platform that prioritizes privateness, safety, and refined efficiency. This replace delivers a variety of recent capabilities, together with the EyeDropper API and a privacy-preserving Contacts Picker. We’re additionally including superior ranging, cross-device handoff APIs, and extra.

This launch continues the shift in our launch cadence, following this annual main SDK launch in Q2 with a minor SDK replace.

Person Expertise & System UI

Bubbles

Bubbles is a windowing mode characteristic that provides a brand new floating UI expertise separate from the messaging bubbles API. Customers can create an app bubble on their cellphone, foldable, or pill by long-pressing an app icon on the launcher. On massive screens, there’s a bubble bar as a part of the taskbar the place customers can set up, transfer between, and transfer bubbles to and from anchored factors on the display.

The Second Beta of Android 17 3

EyeDropper API

A brand new system-level EyeDropper API permits your app to request a coloration from any pixel on the show with out requiring delicate display seize permissions.

The Second Beta of Android 17 4


val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  consequence -> if (consequence.resultCode == Exercise.RESULT_OK) {
    val coloration = consequence.information?.getIntExtra(Intent.EXTRA_COLOR, Shade.BLACK)
    // Use the picked coloration in your app
  }
}

enjoyable launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}

Contacts Picker

A brand new system-level contacts picker through ACTION_PICK_CONTACTS grants non permanent, session-based learn entry to solely the particular information fields requested by the person, decreasing the necessity for the broad READ_CONTACTS permissions. It additionally permits for picks from the system’s private or work profiles.

The Second Beta of Android 17 5

val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val uri = it.information?.information ?: return@rememberLauncherForActivityResult
        // Deal with consequence logic
        processContactPickerResults(uri)
    }
}

val dataFields = arrayListOf(E mail.CONTENT_ITEM_TYPE, Telephone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
    putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
    putExtra(EXTRA_ALLOW_MULTIPLE, true)
    putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}

contactPicker.launch(intent)

Simpler pointer seize compatibility with touchpads

Beforehand, touchpads reported occasions in a really completely different method from mice when an app had captured the pointer, reporting the areas of fingers on the pad reasonably than the relative actions that may be reported by a mouse. This made it fairly troublesome to help touchpads correctly in first-person video games. Now, by default the system will acknowledge pointer motion and scrolling gestures when the touchpad is captured, and report them identical to mouse occasions. You possibly can nonetheless request the previous, detailed finger location information by explicitly requesting seize within the new “absolute” mode.

// To request the brand new default relative mode (mouse-like occasions)
// This is identical as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()

// To request the legacy absolute mode (uncooked contact coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)

Interactive Chooser resting bounds

By calling getInitialRestingBounds on Android’s ChooserSession, your app can determine the goal place the Chooser occupies after animations and information loading are full, enabling higher UI changes.

Connectivity & Cross-Machine

Cross-device app handoff

A brand new Handoff API lets you specify software state to be resumed on one other system, equivalent to an Android pill. When opted in, the system synchronizes state through CompanionDeviceManager and shows a handoff suggestion within the launcher of the person’s close by gadgets. This characteristic is designed to supply seamless process continuity, enabling customers to choose up precisely the place they left off of their workflow throughout their Android ecosystem. Critically, Handoff helps each native app-to-app transitions and app-to-web fallback, offering most flexibility and guaranteeing an entire expertise even when the native app is just not put in on the receiving system.

Superior ranging APIs

We’re including help for two new ranging applied sciences – 

  1. UWB DL-TDOA which allows apps to make use of UWB for indoor navigation. This API floor is FIRA (Advantageous Ranging Consortium) 4.0 DL-TDOA spec compliant and allows privateness preserving indoor navigation  (avoiding monitoring of the system by the anchor).

  2. Proximity Detection which allows apps to make use of the brand new ranging specification being adopted by WFA (WiFi Alliance). This know-how gives improved reliability and accuracy in comparison with current Wifi Conscious based mostly ranging specification.

Knowledge plan enhancements

To optimize media high quality, your app can now retrieve carrier-allocated most information charges for streaming purposes utilizing getStreamingAppMaxDownlinkKbps and getStreamingAppMaxUplinkKbps.

Core Performance, Privateness & Efficiency

Native Community Entry

Android 17 introduces the ACCESS_LOCAL_NETWORK runtime permission to guard customers from unauthorized native community entry. As a result of this falls underneath the present NEARBY_DEVICES permission group, customers who’ve already granted different NEARBY_DEVICES permissions won’t be prompted once more. By declaring and requesting this permission, your app can uncover and connect with gadgets on the native space community (LAN), equivalent to good dwelling gadgets or casting receivers. This prevents malicious apps from exploiting unrestricted native community entry for covert person monitoring and fingerprinting. Apps concentrating on Android 17 or larger will now have two paths to keep up communication with LAN gadgets: undertake system-mediated, privacy-preserving system pickers to skip the permission immediate, or explicitly request this new permission at runtime to keep up native community communication.

Time zone offset change broadcast

Android now gives a dependable broadcast intent, ACTION_TIMEZONE_OFFSET_CHANGED, triggered when the system’s time zone offset adjustments, equivalent to throughout Daylight Saving Time transitions. This enhances the present broadcast intents ACTION_TIME_CHANGED and ACTION_TIMEZONE_CHANGED, that are triggered when the Unix timestamp adjustments and when the time zone ID adjustments, respectively.

NPU Administration and Prioritization

Apps concentrating on Android 17 that must instantly entry the NPU should declare FEATURE_NEURAL_PROCESSING_UNIT of their manifest to keep away from being blocked from accessing the NPU. This consists of apps that use the LiteRT NPU delegate, vendor-specific SDKs, in addition to the deprecated NNAPI.

ICU 78 and Unicode 17 help

Core internationalization libraries have been up to date to ICU 78, increasing help for brand spanking new scripts, characters, and emoji blocks, and enabling direct formatting of time objects.

SMS OTP safety

Android is increasing its SMS OTP safety by mechanically delaying entry to SMS messages with OTP. Beforehand, the safety was primarily targeted on the SMS Retriever format whereby the supply of messages containing an SMS retriever hash is delayed for many apps for 3 hours. Nonetheless, for sure apps just like the default SMS app, and many others and the app that corresponds to the hash are exempt from this delay. This replace extends the safety to all SMS messages with OTP. For many apps, SMS messages containing an OTP will solely be accessible after a delay of three hours to assist forestall OTP hijacking. The SMS_RECEIVED_ACTION broadcast will likely be withheld and sms supplier database queries will likely be filtered. The SMS message will likely be out there to those apps after the delay.


Delayed entry to WebOTP format SMS messages

If the app has the permission to learn SMS messages however is just not the supposed recipient of the OTP (as decided by area verification), the WebOTP format SMS message will solely be accessible after three hours have elapsed. This variation is designed to enhance person safety by guaranteeing that solely apps related to the area talked about within the message can programmatically learn the verification code. This variation applies to all apps no matter their goal API stage.

Delayed entry to plain SMS messages with OTP

For SMS messages containing an OTP that don’t use the WebOTP or SMS Retriever codecs, the OTP SMS will solely be accessible after three hours for many apps. This variation solely applies to apps that concentrate on Android 17 (API stage 37) or larger.

Sure apps such because the default SMS, assistant app, together with related system companion apps, and many others will likely be exempt from this delay.

All apps that depend on studying SMS messages for OTP extraction ought to transition to utilizing SMS Retriever or SMS Person Consent APIs to make sure continued performance.

The Android 17 schedule

We will be transferring shortly from this Beta to our Platform Stability milestone, focused for March. At this milestone, we’ll ship last SDK/NDK APIs. From that point ahead, your app can goal SDK 37 and publish to Google Play that can assist you full your testing and accumulate person suggestions within the a number of months earlier than the overall availability of Android 17.

The Second Beta of Android 17 6

A 12 months of releases

We plan for Android 17 to proceed to get updates in a sequence of quarterly releases. The upcoming launch in Q2 is the one one the place we introduce deliberate app breaking habits adjustments. We plan to have a minor SDK launch in This autumn with further APIs and options.

The Second Beta of Android 17 7


Get began with Android 17

You possibly can enroll any supported Pixel system to get this and future Android Beta updates over-the-air. For those who don’t have a Pixel system, you possibly can use the 64-bit system photographs with the Android Emulator in Android Studio.

If you’re at present within the Android Beta program, you can be supplied an over-the-air replace to Beta 2.

When you’ve got Android 26Q1 Beta and want to take the ultimate secure launch of 26Q1 and exit Beta, you must ignore the over-the-air replace to 26Q2 Beta 2 and look ahead to the discharge of 26Q1.

We’re in search of your suggestions so please report points and submit characteristic requests on the suggestions web page. The sooner we get your suggestions, the extra we will embrace in our work on the ultimate launch.

For the perfect growth expertise with Android 17, we advocate that you just use the most recent preview of Android Studio (Panda). When you’re arrange, listed here are a number of the issues it is best to do:

  • Compile towards the brand new SDK, take a look at in CI environments, and report any points in our tracker on the suggestions web page.

  • Check your present app for compatibility, study whether or not your app is affected by adjustments in Android 17, and set up your app onto a tool or emulator operating Android 17 and extensively take a look at it.

We’ll replace the preview/beta system photographs and SDK usually all through the Android 17 launch cycle. When you’ve put in a beta construct, you’ll mechanically get future updates


Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles