get started

How Android 6 (Marshmallow) Could Cause Problems For Your Android App

How Android 6 (Marshmallow) Could Cause Problems For Your Android App

Today Android began rolling out their much-anticipated update: Android 6 (code name “Marshmallow”). At the moment it is only available on select Nexus devices, but is expected to be available for download on non-Google devices (ex. Samsung, HTC, LG) before the end of this year, or early 2016.

If your organization has an Android app there are a few things you need to know.

While Android 6 does not have a radical new look and feel like Android 5 (“Lollipop”), there have been core changes to the underlying way that the operating system functions that may adversely affect apps that have not been tested and verified against Android 6.

 Here is what you need to know about the update, and how your Android app may be affected.

1. What’s New: Granular App Permissions

Probably the most publicized and important change is the new permissions model found in Marshmallow….which you may note is similar to iOS.

Going forward, devices running Android 6, and apps built specifically for it, will no longer see the current, daunting, permissions page when they install a new app (see below).

Android Permissions Page

Rather than showing all required permissions on install, the install screen will show only the bare minimum permissions that the app requires to run. Then, when your app needs to perform an action that requires a permission it does not yet have, it will ask the user at that moment.

For example, your app allows the user to call your business using the device phone. In the past the app had to ask for permission to use the phone when the user installed the app. With Android 6, the app will only ask for the permission when the user clicks the “Call Us” button for the first time.

Why it could cause a problem:

If your app has not been updated to support the new Android 6 permissions functionality, the user will see the familiar permissions screen when they install your app.  BUT, now the user will have the ability to deny individual permissions in the settings.

If a savvy user takes advantage of this feature, and your app has not been updated to handle being denied permissions to services, your app may crash, lock up, or worse.

Adding support for the new Marshmallow permissions model is relatively straightforward. If you do nothing else to update your mobile app for Marshmallow, make certain to be sure all resource requests are properly handled.

(Big Fish can help with this)

2. What’s New: Battery Saving (Doze and Standby)

If your app was designed to have tasks running in the background, you must be certain that those services where written following best practices compatible with Android 6. Otherwise, they may perform in unexpected ways.  All background and long running services should be audited to ensure they perform under the new battery saving mode.

3. What’s New: AudioManager Changes

Audio handling has been changed in Android 6. The sound of each app can be individually controlled from the settings menu, as well as the usual up down volume rocker. Controlling sound through your app, however, requires additional work.

If your app uses the AudioManager to adjust the volume, this will no longer function properly, and additional work must be done to control the volume.

4. What’s New: Access to Hardware Identifier

Sorry about the tech lingo here.

To provide users with more anonymity and data protection, access to Wi-Fi and Bluetooth Mac Addresses will return a constant value of 02:00:00:00:00:00 (rather than a unique Mac address).

If the device’s Mac address was being used to uniquely identify the client this will no longer work and you will need to find a new way to identify the client device.

5. Other Changes

There are a few other changes – camera allocation, notifications, and some changes to settings – which may cause minor issues with your Android app. The aforementioned updates will be the primary cause of potential issues.

Arrival Date of Android 6 “Marshmallow”

Google has started to roll out Android 6 to Nexus devices this week. Expect to see Android 6 available to non-Google Android devices before the end of this year, or in early 2016.

New devices for sale on the market, with Marshmallow installed, should be expected in the spring of 2016.

Our Advice to Your Company

To prevent your users from having a frustrating experience with your app. And, to prevent any potential crashes and unforeseen issues with devices running Android’s latest and greatest OS, you should have your app fully tested on Marshmallow ASAP.

At the same time, the code should be examined for potential issues that may not be apparent with a cursory test of your app on Android 6.

Wish you’d known sooner? Ask us about our app maintenance plans, and contact us to request an audit of your app and we will take care of any problems.

Kris @ Big Fish

Kris @ Big Fish

Kris is a software developer at Big Fish - we turn revolutionary ideas into reality through custom software design and development. Kris has over 20 years of professional software development experience. Here at Big Fish, he builds native Android and cross platform applications. In his downtime, Kris is an avid cyclist and enjoys visiting wineries with his wife.

ready to begin?