diff --git a/android/sdk/src/main/AndroidManifest.xml b/android/sdk/src/main/AndroidManifest.xml
index 319306ef67..946814d628 100644
--- a/android/sdk/src/main/AndroidManifest.xml
+++ b/android/sdk/src/main/AndroidManifest.xml
@@ -14,6 +14,7 @@
+
extraData) {
+ private static void doLaunch(Context context, HashMap extraData) {
OngoingNotification.createNotificationChannel((Activity) context);
@@ -87,6 +93,31 @@ public class JitsiMeetOngoingConferenceService extends Service
}
}
+
+ public static void launch(Context context, HashMap extraData) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ PermissionListener listener = new PermissionListener() {
+ @Override
+ public boolean onRequestPermissionsResult(int i, String[] strings, int[] results) {
+ if (results.length > 0 && results[0] == PackageManager.PERMISSION_GRANTED) {
+ doLaunch(context, extraData);
+ }
+
+ return true;
+ }
+ };
+
+ JitsiMeetActivityDelegate.requestPermissions(
+ (Activity) context,
+ new String[]{POST_NOTIFICATIONS},
+ POST_NOTIFICATIONS_PERMISSION_REQUEST_CODE,
+ listener
+ );
+ } else {
+ doLaunch(context, extraData);
+ }
+ }
+
public static void abort(Context context) {
Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class);
context.stopService(intent);