From 2e775b3906cdc8046dbfa223dcea34ad42982cb2 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Mon, 2 Jun 2025 22:19:51 +0200 Subject: [PATCH] prevent crash from security exception in media content listening --- .../channel/streams/MediaStoreChangeStreamHandler.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/MediaStoreChangeStreamHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/MediaStoreChangeStreamHandler.kt index e926b5b6a..0f16007e5 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/MediaStoreChangeStreamHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/MediaStoreChangeStreamHandler.kt @@ -31,9 +31,15 @@ class MediaStoreChangeStreamHandler(private val context: Context) : EventChannel init { Log.i(LOG_TAG, "start listening to Media Store") - context.contentResolver.apply { - registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, contentObserver) - registerContentObserver(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, true, contentObserver) + try { + context.contentResolver.apply { + registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, contentObserver) + registerContentObserver(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, true, contentObserver) + } + } catch (e: SecurityException) { + // Trying to register an observer may yield a security exception with this message: + // "Failed to find provider media for user 0; expected to find a valid ContentProvider for this authority" + Log.w(LOG_TAG, "failed to register content observer", e) } }