From 58edd095c89575e1f29db0db607c4891af70ecf9 Mon Sep 17 00:00:00 2001 From: Ivan Alexandrov Date: Mon, 6 Nov 2023 12:21:24 +0200 Subject: [PATCH] Android 14 support (#7801) From react native [pr](https://github.com/facebook/react-native/pull/38256) > Summary: > Add RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED flag support to DevSupportManagerBase for Android 14 change. See > https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported for details. > > Without this fix, app crashes during launch because of : > SecurityException: {package name here}: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts --- .../reactnativenavigation/react/JsDevReloadHandler.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/react/JsDevReloadHandler.java b/lib/android/app/src/main/java/com/reactnativenavigation/react/JsDevReloadHandler.java index 412b42faf45..c562ccd5511 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/react/JsDevReloadHandler.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/react/JsDevReloadHandler.java @@ -7,6 +7,7 @@ import android.content.IntentFilter; import android.view.KeyEvent; import android.widget.EditText; +import android.os.Build; import com.facebook.react.devsupport.interfaces.DevSupportManager; import com.reactnativenavigation.utils.UiUtils; @@ -49,7 +50,11 @@ public void removeReloadListener(ReloadListener listener) { } public void onActivityResumed(Activity activity) { - activity.registerReceiver(reloadReceiver, new IntentFilter(RELOAD_BROADCAST)); + if (Build.VERSION.SDK_INT >= 34 && activity.getApplicationInfo().targetSdkVersion >= 34) { + activity.registerReceiver(reloadReceiver, new IntentFilter(RELOAD_BROADCAST), Context.RECEIVER_EXPORTED); + } else { + activity.registerReceiver(reloadReceiver, new IntentFilter(RELOAD_BROADCAST)); + } } public void onActivityPaused(Activity activity) {