Estimote Fleet Management SDK for Android

Using

    implementation 'com.estimote:mgmtsdk:1.4.6'
    implementation 'com.estimote:coresdk:1.3.4'

Crashes when started. Is there a newer SDK for this? or a way to fork the outdated code?

This Android api version 31 requirement/assertion affects BeaconManager.connect and there is no way to catch or suppress the error

    java.lang.IllegalArgumentException: com.synapticstuff.remedyandroid: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
        at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
        at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
        at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
        at com.estimote.coresdk.scanning.scheduling.SystemAlarmManager.setAlarm(SystemAlarmManager.java:32)
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.scheduleForegroundAlarm(NougatScanScheduler.java:294)
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.scheduleAlarm(NougatScanScheduler.java:271)
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.access$400(NougatScanScheduler.java:29)
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler$1.execute(NougatScanScheduler.java:152)
        at com.estimote.coresdk.scanning.scheduling.ScanCommandBuffer$2.run(ScanCommandBuffer.java:54)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.os.HandlerThread.run(HandlerThread.java:67)

This could be fixed in SystemAlarmManager by:

    if (pendingIntent == null) {
      Intent intent = new Intent(context, AlarmBroadcastReceiver.class);
      int flags;
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
        flags = PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT;
      } else {
        flags = PendingIntent.FLAG_UPDATE_CURRENT;
      }
      pendingIntent = PendingIntent.getBroadcast(context, 0, intent, flags);
    }