Page MenuHomeGitPull.it

Fix crash with MQTT service on Android 14
Closed, ResolvedPublic

Description

Android 14 is a b**ch as usual, and revoked default permission to set alarms, which is what the MQTT libraries is actually doing.

Original crash report (da Stefano Ordine):

version code:
51

version name:
2.1.1

android version:
14

phone:
Pixel 7

brand:
google

stack:
java.lang.SecurityException: Caller it.reyboz.bustorino needs to hold android.permission.SCHEDULE_EXACT_ALARM or android.permission.USE_EXACT_ALARM to set exact alarms.
	at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
	at android.os.Parcel.createException(Parcel.java:3041)
	at android.os.Parcel.readException(Parcel.java:3024)
	at android.os.Parcel.readException(Parcel.java:2966)
	at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:311)
	at android.app.AlarmManager.setImpl(AlarmManager.java:1084)
	at android.app.AlarmManager.setImpl(AlarmManager.java:1044)
	at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1312)
	at info.mqtt.android.service.ping.AlarmPingSender.schedule(AlarmPingSender.kt:86)
	at info.mqtt.android.service.ping.AlarmPingSender.start(AlarmPingSender.kt:57)
	at org.eclipse.paho.client.mqttv3.internal.ClientState.connected(ClientState.java:1214)
	at org.eclipse.paho.client.mqttv3.internal.ClientState.notifyReceivedAck(ClientState.java:1050)
	at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:151)
	at java.lang.Thread.run(Thread.java:1012)
Caused by: android.os.RemoteException: Remote stack trace:
	at com.android.server.alarm.AlarmManagerService$5.set(AlarmManagerService.java:2981)
	at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:181)
	at android.os.Binder.execTransactInternal(Binder.java:1339)
	at android.os.Binder.execTransact(Binder.java:1275)

Thank you! :)

Generated with https://lab.reyboz.it/libre-busto/crash-report/ (P15)

Details

Changelog (EN)
Solved crash on Android 14 due to MQTT service
Changelog (IT)
Risolto crash su Android 14

Revisions and Commits

Event Timeline

fabio.mazza triaged this task as Unbreak Now! priority.Dec 12 2023, 13:27
fabio.mazza created this task.

Opzioni:

  1. si chiede il permesso di mettere Sveglie (Alarms) all'utente
  2. Si cerca un altro servizio/libreria MQTT per Android. Su questo, potremmo provare https://github.com/hannesa2/paho.mqtt.android

Veramente serve il permesso per le sveglie per usare MQTT? asd

Comunque favorevole asd

E poi cosí diamo spazio alla possibilitá di svegliarlo la mattina quando passa il tram asd

asd