View Issue Details

IDProjectCategoryView StatusLast Update
0020330MMAGeneralpublic2023-11-16 16:46
Reporterrusty Assigned To 
PriorityurgentSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version2.0.0 
Target Version2.0.0Fixed in Version2.0.0 
Summary0020330: Photos and video access permissions are requested
DescriptionOn Android 13+ MMA is supposed to request access to Audio and Video only (no access to photos). It includes manifest.permission.READ_MEDIA_AUDIO and Manifest.permission.READ_MEDIA_VIDEO only.

However, on testing on Android 14 (clean install), it first requests access to 'music and audio' and then requests access to 'photos and video'.
TagsNo tags attached.
Fixed in build1052

Relationships

related to 0020335 newmartin Migration to Android 14 (app target API 34) 
related to 0020371 resolvedmartin 'Dirty' install of MMA results in skipped or failed permissions / crash on startup 

Activities

rusty

2023-11-06 22:15

administrator   ~0073315

In addition to reports of this in the Play store, there's a similar report at:
https://www.mediamonkey.com/forum/viewtopic.php?t=105138

martin

2023-11-08 15:58

developer   ~0073356

In Android 13 READ_EXTERNAL_STORAGE was divided into three granular permission
Manifest.permission.READ_MEDIA_AUDIO, Manifest.permission.READ_MEDIA_VIDEO, Manifest.permission.READ_MEDIA_IMAGES

MMA needs this permission to be a possible system media library to scan Audio and Video located in the device.
(Note: MMA scans audio and video only from folders included in the library. "Music" and "Video" by default)

We don't need access to IMAGES, so MMA only requests READ_MEDIA_AUDIO, READ_MEDIA_VIDEO permissions.

System dialog with the following message appears:
For audio
"Allow MediaMonkey to access music and audio on this device"? [Allow][Don't allow]

For video
"Allow MediaMonkey to access photos and video on this device"? [Allow][Don't allow]

As you can see "access photos" is in the video permission dialog message although MMA requests VIDEO permission only.

The documentation is inaccurate, it says:
If you request READ_MEDIA_IMAGES and READ_MEDIA_VIDEO permissions at the same time, only one system dialog will be displayed.

But the truth is that the dialogue is always shared and only the permissions we request are assigned.
So even though the photos are mentioned in the dialog, we only get access to the videos!!!

Sources:
https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions
https://stackoverflow.com/questions/74145792/does-android-13-treat-the-video-and-image-permissions-the-same

On Android 14
the dialog for video permission was modified by option of partial access:
"Allow MediaMonkey to access photos and video on this device"? [Select photos and videos][Allow all][Don't allow]

If a user only selects some videos, then MMA has only access to those videos!
On each start, the Dialog will appear again, but with modified text:
"Allow MediaMonkey to access more photos and video on this device"? [Select photos and videos][All allow][Don't select more]

Documentation says:
"When opening the selection dialog, photos, videos, or both are shown depending on the permissions requested. For example, if you're requesting the READ_MEDIA_VIDEO permission without the READ_MEDIA_IMAGES permission, only videos would appear in the UI for users to select files."
Based on my testing it seems to be true and no photos are in the selection dialog. Anyway, there are still tabs "Photos" and "Albums" and it sounds a little weird for video.


So Google has mixed the photos and video dialog and we can't modify the text.
Even if a user presses on [All allow], only VIDEO access is granted.

rusty

2023-11-15 21:07

administrator   ~0073505

Martin, re. the changes for Android 14:
"Allow MediaMonkey to access photos and video on this device"?
 [Select photos and videos][All allow][Don't select more]

The language should probably be changed to:
--> [Allow] [Allow some] [Don't allow]

And for "Allow MediaMonkey to access more photos and video on this device"
-->[Allow all] [Allow some] [Don't ask again]

What I don't understand is why do we ask this and then ask for access to specific folders? e.g. what does it mean if the user first grants access to only specific videos and then grants access to the entire /Video folder ?

martin

2023-11-15 21:21

developer   ~0073509

These dialogs are generated by system, we cannot change text or buttons. Also dialog is different for different Android system version.

This permission is access to mediastore. If permission is granted then we can read metadata and play it.

Access to folders is permisson for creating files e.g when we need download tracks to folder Music, we have to have write permission to this folder.