Estimote Fleet Management SDK for Android


    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 com.estimote.coresdk.scanning.scheduling.SystemAlarmManager.setAlarm(
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.scheduleForegroundAlarm(
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.scheduleAlarm(
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler.access$400(
        at com.estimote.coresdk.scanning.scheduling.NougatScanScheduler$1.execute(
        at com.estimote.coresdk.scanning.scheduling.ScanCommandBuffer$
        at android.os.Handler.handleCallback(
        at android.os.Handler.dispatchMessage(
        at android.os.Looper.loopOnce(
        at android.os.Looper.loop(

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);