Over the past couple of days, Marshmallow's official release has been making its way to us as Nexus factory images and OTA updates for Nexus and Android One devices. Like us, you've probably rushed to download this stable release and started using it, turning it upside down, and checking all the cool features it packs. One such feature, however, may be causing trouble to some of your apps without you noticing: App Permissions.
Take for example Google+. When you start writing a new post, you're usually faced with a text field and an image box beneath it that shows thumbnails of your last photos for easy insertion in the post. If you open Google+ on an Android M running device, these thumbnails are nowhere to be found. You'd have to tap All Photos and be taken to another screen to choose one of the last few screenshots/images you took or saved.
It turns out the problem is that Google+ doesn't have its granular permissions enabled and doesn't know how to ask for them in some instances. If you're facing this issue, head over to your device's Settings -> Apps -> Google+ -> Permissions, and you'll see that some of the app's permissions aren't turned on. The culprit in the thumbnails' case is Storage, which is now a required permission in M. Once that's toggled, the images appear in the media box and you can quickly pick them up and add them to your post.
Left: With "Storage" permission off... Right: ... and then on
If however, before you manually enabled all permissions, you tried to take a photo, you'd have instantly been asked to grant permission to the camera and to access photos, media, and files (ie storage). So the permission dialogues are baked in with this version of Google+, but they're just there for explicit actions, not for the passive one of displaying preview images.
This issue isn't limited to Google+. Users are reporting problems with floating apps too, like Flynx and Facebook Messenger (up until last week, when it was fixed). You may remember that apps also need to request your permission to draw over other apps in Marshmallow (in an even more convoluted way than the other permissions) and it looks like some of these haven't been optimized to ask for this new requirement.
You shouldn't be facing this issue with all apps. Those that target API level 22 (Android 5.1) and below should have all their permissions granted to them by default on Marshmallow. (Edit: to clarify, this means that those apps will ask for all of their permissions right when you try installing them from the Play Store, like they do on Lollipop, and once installed they'll have all of them enabled in Settings.) But it seems that those problematic apps we mentioned above might have been updated to target level 23 (Android 6.0) without adding the necessary dialogues in all of the right places.
As more and more apps get updated to fully and correctly support Marshmallow's app permissions, you should see them actually ask you to grant them access to their needed features instead of just working wonkily. In the meantime, it wouldn't hurt to go for a stroll in your app's list and check to make sure each one has what it needs.
- +Artem Russakovskii