Skip to content

Commit ffbec5b

Browse files
committed
[LOCAL] For targeting SDK 34 - Added RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED flag support in DevSupportManagerBase
1 parent 5f4a091 commit ffbec5b

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.graphics.Color;
2121
import android.graphics.Typeface;
2222
import android.hardware.SensorManager;
23+
import android.os.Build;
2324
import android.util.Pair;
2425
import android.view.Gravity;
2526
import android.view.View;
@@ -1098,7 +1099,7 @@ private void reload() {
10981099
if (!mIsReceiverRegistered) {
10991100
IntentFilter filter = new IntentFilter();
11001101
filter.addAction(getReloadAppAction(mApplicationContext));
1101-
mApplicationContext.registerReceiver(mReloadAppBroadcastReceiver, filter);
1102+
compatRegisterReceiver(mApplicationContext, mReloadAppBroadcastReceiver, filter, true);
11021103
mIsReceiverRegistered = true;
11031104
}
11041105

@@ -1214,4 +1215,21 @@ public void setPackagerLocationCustomizer(
12141215

12151216
return mSurfaceDelegateFactory.createSurfaceDelegate(moduleName);
12161217
}
1218+
1219+
/**
1220+
* Starting with Android 14, apps and services that target Android 14 and use context-registered
1221+
* receivers are required to specify a flag to indicate whether or not the receiver should be
1222+
* exported to all other apps on the device: either RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED
1223+
*
1224+
* <p>https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported
1225+
*/
1226+
private void compatRegisterReceiver(
1227+
Context context, BroadcastReceiver receiver, IntentFilter filter, boolean exported) {
1228+
if (Build.VERSION.SDK_INT >= 34 && context.getApplicationInfo().targetSdkVersion >= 34) {
1229+
context.registerReceiver(
1230+
receiver, filter, exported ? Context.RECEIVER_EXPORTED : Context.RECEIVER_NOT_EXPORTED);
1231+
} else {
1232+
context.registerReceiver(receiver, filter);
1233+
}
1234+
}
12171235
}

0 commit comments

Comments
 (0)