Android Pie was released not so long ago, but already the world is anticipating a new version of the most popular operating system in the world: Android Q. When will Android Q be released? What changes will it bring? Find out in this article.

Android Q: Devices and release dates

We’re still waiting for Android Q, and currently only the second beta is available. The first one was released back in March, and there are still four to come.

Android Q release timeline

Though there’s no exact release date yet, we expect it after June, in the third quarter of 2019. Beta 3 will be available in the beginning of May, and Beta 4 about a month after that. Then in July, we’ll probably see two more betas before the final release. Releases of previous Android versions have usually been in August, and this year probably won’t be an exception.

What about devices? Currently, the Android Q beta is available for all Pixel devices:

  • Pixel
  • Pixel XL
  • Pixel 2
  • Pixel 2 XL
  • Pixel 3
  • Pixel 3 XL
pixel android q
Android Q will be available for all Pixel smartphones

You can now install the beta version of Android Q on your Pixel smartphone, but be careful, as this software is still not polished. Most betas will be more interesting to developers than to end users, and the current versions of Android Q aren’t ready for public use yet.

As usual, Google is saving its major features for Google I/O, but even from these early betas we have many interesting novelties to look at. Let’s discuss them in detail.

New Android Q features

The tenth major version of Android reflects trends in society and the mobile market in 2019. The largest companies and governments around the world are concerned with privacy; innovative foldable phones are being announced — Android Q is fully prepared for both of these things. Without further ado, let’s begin with privacy features.

Improved user privacy and location permissions

Users of Android Q will get even more control over their private data. This control will concern shared files, apps, and location data for the most part. Access to photos, videos, and audio will require new runtime permissions from users.

Now applications that work in the background won’t be able to alert a user unless the user gives specific high-priority permission

There are now more settings for location permissions. In previous Android versions, a user was asked only once whether an app could have access to location data. Then the app could get location data whenever it was on, even in the background. Now a user will be able to give apps access to location data:

  • Never
  • When the app is running
  • When the app is in the background

The background logic will also improve in Android Q, as Google developers have noticed that background apps popping up suddenly and taking over isn’t particularly user-friendly. Now applications that work in the background won’t be able to alert a user unless the user gives specific high-priority permission. Developers can also provide a full-screen intent to get a user’s attention quickly.

Support for foldable screens

Foldable smartphones are the future of mobile device manufacturing. At any rate, the CEO of Huawei states that by 2021 half of its flagships will be foldable. Recent announcements from Samsung, LG, Motorola, Xiaomi, and others confirm that this will be the hottest trend of 2019 and beyond.

foldable phones android q
Foldable phones is a new trend, and though they promise to be expensive, some experts say they’ll be more affordable and wide-spread in the future

Android Q offers changes to the onResume and onPause methods to allow developers see when their app is in focus. The resizeableActivity manifest will also work differently for foldable phones, giving developers the ability to control their app’s layout and behavior on large and foldable screens.

Developers can already test their apps on such screens: Google has created an Android Emulator that supports all kinds of new screens and switching between them.

foldable screens android q
New Android emulator allows developers to create their apps with foldable screens in mind

Dark mode

This is something many users have dreamed of: dark mode all across the system. This mode was revealed in the first Android Q leak along with the privacy permissions we talked about earlier.

Dark mode will turn the whole system black, and elements will be highlighted with dark gray and contrasting colors.

dark mode android q
Dark mode is something Android users dreamt about for a long time, and maybe it will be available in the final release of Android Q

Dark mode will affect the whole system, from notifications to the volume panel.

Interface customization

Apart from dark mode, there may be other possibilities to customize your smartphone with Android Q. In the first beta, developers noticed an option to change the color of the user interface. Currently, there are four options:

  • Blue
  • Green
  • Purple
  • Black

There’s no guarantee this feature will remain in future betas, but if it does, Android will become truly customizable and more personalized.

Internet connection

Now the internet connection will be faster and more secure. For Android Q, Google developers have changed their Wi-Fi stack to improve the way IoT devices are managed and to suggest internet connections without having to ask for a user’s location.

For real-time gaming and voice calls, developers will have new adaptive Wi-Fi modes for high performance and low latency

There are several new network connection APIs that developers will be able to use to initiate connections with available networks and connect to the best performing network.

For real-time gaming and voice calls, developers will have new adaptive Wi-Fi modes for high performance and low latency. To use them, a developer needs to call WifiManager.WifiLock.createWifiLock() with WIFI_MODE_FULL_LOW_LATENCY or WIFI_MODE_FULL_HIGH_PERF.

These modes will ensure the lowest power consumption possible and will also improve the connection.

Dynamic depth camera

If you wanted an iPhone X just for photos, now you won’t need one, as you’ll be able to get that same effect from Android flagships that support Android Q. The new version of Android will add blur to your photos after analyzing them.

This is possible due to metadata captured for different image points. To get this metadata, apps will need to request a Dynamic Depth image. Later, this will also allow developers to create 3D images and support AR photos.

camera android q
New dynamic depth camera will allow users to make beautiful, deep photos with background blur

Faster video streaming

With each major Android version, Google improves its video and audio codecs. Android Q offers support for the AV1 codec, which provides video streaming while using less bandwidth.

Opus is a new audio codec that Android Q will now support. It’s focused on speech and music streaming.

Instant Settings panel

This is a great feature I’ve honestly been waiting for. Android Q will offer developers a Settings Panel API that will allow them to give users direct access to settings when they need to adjust them for an app to work properly.

These settings include:

  • Bluetooth
  • Wi-Fi
  • NFC

For example, if you need to set up NFC to pay through your banking app, the application can instantly provide a pop-up where you’ll be able to set it.

A Settings Panel API that will allow developers to give users direct access to settings when they need to adjust them for an app to work properly

Currently, an app usually asks you to go to Settings, so you need to leave the app. Android Q makes the process much easier.

Face ID now on Android

Something only Apple flagships could boast will now be available for Android. This is only a rumor, but Android Q might get a facial recognition feature for authentication when logging in or purchasing.

It’s still unclear how exactly this will work, but it seems like it will analyze the face from different angles to get the best perception. To use this technology, devices themselves will need to have special hardware. What manufacturers will add this feature to their devices and what exact hardware will be needed is still a mystery.

No more back button

Android’s classic navigation consisting of three buttons has lasted for years, even though different manufacturers have been slowly implementing their own gesture controls.

Finally, Android will catch up and get rid of the back button, replacing it with gestures. The new navigation system will likely be similar to the one currently present on the Google Pixel 3: a small oval button at the bottom you can pull in different directions.

Android Q will continue the gesture control

Chat bubbles

Chat bubbles are a multitasking feature that may replace notifications. These bubbles will be displayed on the screen on top of all other applications and will be expandable: a user will be able to text a reply to a message right from the bubble without having to open the messenger app.

chat bubbles android q
You’ve already seen this in Facebook, now you’ll be able to enjoy Chat Bubbles in Android Q

Just like all other features, this one isn’t polished yet. You should be aware that some apps can crash and experience problems when accessing photos, videos, and other files.

How to implement Chat Bubbles into your Android app

As a part of our research, we decided to get a more in-depth look in the implementation of the new Chat Bubble feature. Basically, it works like a Facebook messenger’s chat head, and it can be present on any screen of a user’s Android device.

According to the documentation, if you want to display chat head for your app, you need a android.permission.SYSTEM_ALERT_WINDOW, and then handle the bubble’s touch, moves and so on. In Android Q the process of implementing the Chat Bubbles is much easier: all you need to do is to use a new Bubbles API.

To build a bubble, you need to put it on top of your existing notification system. Just create a notification and add meta information. This will make your Bubble work!

fun showBubbleNotification(fromUser: Boolean) {
   createNotificationChannelIfNotExists()
   val icon = Icon.createWithResource(context,R.drawable.ic_message)
   val contentUri = Uri.parse("https://android.example.com/chat/1")
   val builder = Notification.Builder(context, CHANNEL_NEW_MESSAGES)

       // A notification can be shown as a bubble by calling setBubbleMetadata()

       .setBubbleMetadata(
           Notification.BubbleMetadata.Builder()

               // The height of the expanded bubble.
               .setDesiredHeight(600)

               // The icon of the bubble.
               // TODO: The icon is not displayed in Android Q Beta 2.


               .setIcon(icon)


               .apply {

                   // When the bubble is explicitly opened by the user, we can show the bubble automatically
                      in the expanded state. This works only when the app is in the foreground.
                   // TODO: This does not yet work in Android Q Beta 2.


                   if (fromUser) {
                       setAutoExpandBubble(true)
                       setSuppressInitialNotification(true)
                   }
               }


               // The Intent to be used for the expanded bubble.


               .setIntent(
                   PendingIntent.getActivity(
                       context,
                       REQUEST_BUBBLE,

                       // Launch ChatActivity as the expanded bubble.


                       Intent(context, ChatWindowActivity::class.java)
                           .setAction(Intent.ACTION_VIEW)
                           .setData(Uri.parse("https://android.example.com/chat/1"))
                       PendingIntent.FLAG_UPDATE_CURRENT
                   )
               )
               .build()
       )


       // The user can turn off the bubble in system settings. In that case, this notification is shown as a normal notification instead of a bubble. Make sure that this notification works as a normal notification as well.


       .setContentTitle("Title")
       .setSmallIcon(R.drawable.ic_message)
       .setCategory(Notification.CATEGORY_MESSAGE)
       .setShowWhen(true)


       // The content Intent is used when the user clicks on the "Open Content" icon button on the expanded bubble, as well as when the fall-back notification is clicked.


       .setContentIntent(
           PendingIntent.getActivity(
               context,
               REQUEST_CONTENT,
               Intent(context, ChatActivity::class.java)
                   .setAction(Intent.ACTION_VIEW)
                   .setData(contentUri),

               PendingIntent.FLAG_UPDATE_CURRENT
           )
       )

       .setContentText("Content Text")
   notificationManager.notify(1, builder.build())

The user will see the the BubbleMetaData intent when they click on a bubble. This intent should be an activity one. For it to work, the activity needs to be resizable, embedded and launched in document UI mode. If it doesn’t meet any of these criteria, the user will see it as a notification.

<activity android:name=".ChatWindowActivity"
 android:theme="@style/AppTheme.NoActionBar"
 android:allowEmbedded="true"
 android:documentLaunchMode="always"
 android:resizeableActivity="true">
</activity>

To configure an activity as a pop-out screen, use setContentIntent.

This was an example of how you can implement Chat Bubbles for our application in the new Android Q.

Conclusion

Android Q is a new version of the beloved operating system that has lots of useful features, especially concerning privacy and security. Though there are no groundbreaking novelties, Android is clearly heading in the right direction, improving the user experience by shortening user journeys and giving users more control over everything from their data to how the whole system looks.

This year, privacy and security are the top priorities in software. Android is following this trend with its new Q version. With Android Q, it might be a challenge for some apps to get location data, so it’s important to give users real value for granting access.

Mobile development services

Are you planning to create a modern mobile solution for your business, or support the existing one?

Get a Free Consultation!
Contact Us

Contact Us

+