# Unnecessary storage permission

**URL:** <https://support.delta.chat/t/unnecessary-storage-permission/5434>\
**Category:** Uncategorized\
**Tags:** android, art\
**Created:** [June 13, 2026, 12:09pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434 "2026-06-13T12:09:48Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![vibe](https://support.delta.chat/letter_avatar_proxy/v4/letter/v/82dd89/32.png) [@vibe](https://support.delta.chat/u/vibe)\
**Post date:** [June 13, 2026, 12:09pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/1 "2026-06-13T12:09:48Z")

</div>

The “attach from gallery” action is used in a number of places, it always asks for storage permission, which is not necessary on modern Android where the system gallery picker can be used instead.

1. To attach media in a chat

2. To set a picture for a profile or a group chat

3. To set a background for a chat

There might be even more cases.

---

<div class="post-metadata">

**Author:** ![r10s](https://support.delta.chat/user_avatar/support.delta.chat/r10s/32/1513_2.png) [@r10s](https://support.delta.chat/u/r10s)\
**Post date:** [June 15, 2026, 11:20am UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/2 "2026-06-15T11:20:46Z")

</div>

the permission is not for the picker itself, but for he “quick view” or “camera roll” of the most recent images.

for 2. and 3. it might indeed not be needed, but it may still make sense maintenance-wise to just use the same code path. esp. as we need to support lots of android and only more recent ones do not need the permission, it makes sense to use simple code here, and not have subtile bugs in rarely used codepaths - in general, we avoid rarely used codepaths whereever we can.

this just as some background, i am not saying that it cannot be improved or should iterated over, but it is probably not an oversight and probably no priority 🙂

---

<div class="post-metadata">

**Author:** ![adbenitez](https://support.delta.chat/user_avatar/support.delta.chat/adbenitez/32/2323_2.png) [@adbenitez](https://support.delta.chat/u/adbenitez)\
**Post date:** [June 16, 2026, 11:24pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/3 "2026-06-16T23:24:12Z")

</div>

> [@vibe](#):
>
> it always asks for storage permission

normally after you reject the permission it should not ask for it anymore, as said by @r10s you will then not have the quick-access gallery preview roll, but you can then pick images without giving the permission

---

<div class="post-metadata">

**Author:** ![vibe](https://support.delta.chat/letter_avatar_proxy/v4/letter/v/82dd89/32.png) [@vibe](https://support.delta.chat/u/vibe)\
**Post date:** [June 18, 2026, 2:10pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/4 "2026-06-18T14:10:36Z")

</div>

Thank you for replying!

That would have been nice, but it does not work that way, at least not on Android 15. When I press Gallery, it prompts

> **Permission required**
> 
> To receive or send files, go to the app settings, select “Permissions”, and enable “Storage”.
> 
> **Cancel** / **Continue**

If I cancel, I won’t get any further. It doesn’t matter if it’s in the chat view or “set profile picture”. Nothing happens. And it will repeat next time.

---

<div class="post-metadata">

**Author:** ![vibe](https://support.delta.chat/letter_avatar_proxy/v4/letter/v/82dd89/32.png) [@vibe](https://support.delta.chat/u/vibe)\
**Post date:** [June 18, 2026, 3:56pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/5 "2026-06-18T15:56:11Z")

</div>

Thank you for replying!

I agree about keeping one code path, but maybe it could be satisfied by adding a “needs\_roll” boolean arg to that common handler? Then the compelling part can be wrapped in an if-statement. Not exactly zero maintenance burden, but perhaps good enough?

I believe that the Android API takes care of the compatibility check and handles fallback when necessary. For example, today when I attach a file to a chat, it just shows the file picker. But had I used an older Android, I would probably have been prompted to allow storage permission.

---

<div class="post-metadata">

**Author:** ![vibe](https://support.delta.chat/letter_avatar_proxy/v4/letter/v/82dd89/32.png) [@vibe](https://support.delta.chat/u/vibe)\
**Post date:** [July 24, 2026, 12:46pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/6 "2026-07-24T12:46:41Z")

</div>

So the situation curently is that if rejecting the prompt to allow file storage, there will be a halt and no file can be picked.

Could it be made possible to reject the request for file storage permission, but then still be able to pick a file using the system picker, with the tradeoff that the “latest used roll” will not be used? That should be possible while retaining a single code path.

---

<div class="post-metadata">

**Author:** ![r10s](https://support.delta.chat/user_avatar/support.delta.chat/r10s/32/1513_2.png) [@r10s](https://support.delta.chat/u/r10s)\
**Post date:** [July 24, 2026, 8:39pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/7 "2026-07-24T20:39:33Z")

</div>

i created an issue for that at [Unnecessary storage permission · Issue #4563 · deltachat/deltachat-android · GitHub](https://github.com/deltachat/deltachat-android/issues/4563)

---

<div class="post-metadata">

**Author:** ![adbenitez](https://support.delta.chat/user_avatar/support.delta.chat/adbenitez/32/2323_2.png) [@adbenitez](https://support.delta.chat/u/adbenitez)\
**Post date:** [September 14, 2026, 6:34pm UTC](https://support.delta.chat/t/unnecessary-storage-permission/5434/8 "2026-09-14T18:34:08Z")

</div>

this was solved in:

> <https://github.com/deltachat/deltachat-android/pull/4579>
>
> the minimum android version we support is android 5 and there already is possibl…e to pick files via the system file picker without storage permission
> 
> we ask for storage permission for the camera roll, but if the permission is denied we should still proceed to the picker
> 
> in more recent android versions we can also use a new image&video-focused picker it seems, but that can be done at later point, this already solves the problem at hand
> 
> close #4563
