Skip to content

Commit 28e764d

Browse files
committed
fix(android): specify export mode on BroadcastReceivers
1 parent a9a7679 commit 28e764d

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def safeExtGet(prop, fallback) {
55
}
66

77
android {
8-
compileSdkVersion safeExtGet('compileSdkVersion', 30)
8+
compileSdkVersion safeExtGet('compileSdkVersion', 33)
99
buildToolsVersion safeExtGet('buildToolsVersion', "30.0.2")
1010

1111
defaultConfig {

android/src/main/java/com/zxcpoiu/incallmanager/AppRTC/AppRTCBluetoothManager.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,11 @@ protected AudioManager getAudioManager(Context context) {
461461
return (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
462462
}
463463
protected void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
464-
apprtcContext.registerReceiver(receiver, filter);
464+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
465+
apprtcContext.registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED);
466+
} else {
467+
apprtcContext.registerReceiver(receiver, filter);
468+
}
465469
}
466470
protected void unregisterReceiver(BroadcastReceiver receiver) {
467471
apprtcContext.unregisterReceiver(receiver);

android/src/main/java/com/zxcpoiu/incallmanager/InCallManagerModule.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,7 @@ public void onReceive(Context context, Intent intent) {
292292
}
293293
}
294294
};
295-
ReactContext reactContext = getReactApplicationContext();
296-
if (reactContext != null) {
297-
reactContext.registerReceiver(wiredHeadsetReceiver, filter);
298-
} else {
299-
Log.d(TAG, "startWiredHeadsetEvent() reactContext is null");
300-
}
295+
this.registerReceiver(wiredHeadsetReceiver, filter);
301296
}
302297
}
303298

@@ -322,12 +317,7 @@ public void onReceive(Context context, Intent intent) {
322317
}
323318
}
324319
};
325-
ReactContext reactContext = getReactApplicationContext();
326-
if (reactContext != null) {
327-
reactContext.registerReceiver(noisyAudioReceiver, filter);
328-
} else {
329-
Log.d(TAG, "startNoisyAudioEvent() reactContext is null");
330-
}
320+
this.registerReceiver(noisyAudioReceiver, filter);
331321
}
332322
}
333323

@@ -389,12 +379,8 @@ public void onReceive(Context context, Intent intent) {
389379
}
390380
}
391381
};
392-
ReactContext reactContext = getReactApplicationContext();
393-
if (reactContext != null) {
394-
reactContext.registerReceiver(mediaButtonReceiver, filter);
395-
} else {
396-
Log.d(TAG, "startMediaButtonEvent() reactContext is null");
397-
}
382+
383+
this.registerReceiver(mediaButtonReceiver, filter);
398384
}
399385
}
400386

@@ -1669,7 +1655,16 @@ public AudioDevice getSelectedAudioDevice() {
16691655

16701656
/** Helper method for receiver registration. */
16711657
private void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
1672-
getReactApplicationContext().registerReceiver(receiver, filter);
1658+
final ReactContext reactContext = getReactApplicationContext();
1659+
if (reactContext != null) {
1660+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
1661+
reactContext.registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED);
1662+
} else {
1663+
reactContext.registerReceiver(receiver, filter);
1664+
}
1665+
} else {
1666+
Log.d(TAG, "registerReceiver() reactContext is null");
1667+
}
16731668
}
16741669

16751670
/** Helper method for unregistration of an existing receiver. */

0 commit comments

Comments
 (0)