Summary: | Since SDK 31 bump, it is not possible to send SMS using KDE Connect | ||
---|---|---|---|
Product: | [Applications] kdeconnect | Reporter: | Simon Redman <simon> |
Component: | android-application | Assignee: | Simon Redman <simon> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | andrew.g.r.holmes, kde.bugs |
Priority: | HI | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/network/kdeconnect-android/commit/bcf080f6eb93b12194208e4114b52767f5b0acb0 | Version Fixed In: | |
Sentry Crash Report: |
Description
Simon Redman
2023-01-16 22:17:32 UTC
I have created this PR against the com.klinker.android library, which contains the offending code: https://github.com/klinker41/android-smsmms/pull/193 I have tested this change locally: Next step, figure out how to package and ship KDE Connect with that fix. Git commit bcf080f6eb93b12194208e4114b52767f5b0acb0 by Simon Redman. Committed on 23/01/2023 at 22:02. Pushed by sredman into branch 'master'. [SMS Plugin] Change android-smsmms to in-house build until upstream supports SDK31 ## Summary Android apps which target SDK 31+ require specifying the mutability of any PENDING_INTENT. This is not supported in the upstream android-smsmms library: https://github.com/klinker41/android-smsmms/pull/193 Until the above PR is merged, we need a solution. I have pulled the code into https://invent.kde.org/sredman/android-smsmms and published the package in the Maven repository in gitlab. ## Test Plan ### Before: Attempting to send an SMS or MMS message using kdeconnect-sms results in no message being sent, and an error being logged: > V/Sending message: Sending new SMS > E/Sending message: Exception > java.lang.IllegalArgumentException: org.kde.kdeconnect_tp: 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:382) > at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:673) > at android.app.PendingIntent.getBroadcast(PendingIntent.java:660) > at com.klinker.android.send_message.Transaction.sendSmsMessage(Transaction.java:267) > at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:158) > at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:172) > at org.kde.kdeconnect.Plugins.SMSPlugin.SmsMmsUtils.sendMessage(SmsMmsUtils.java:188) > at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.onPacketReceived(SMSPlugin.java:414) > at org.kde.kdeconnect.Device.onPacketReceived(Device.java:570) > <snipped for brevity> ### After: SMS and MMS sends normally. M +8 -2 build.gradle M +6 -0 settings.gradle https://invent.kde.org/network/kdeconnect-android/commit/bcf080f6eb93b12194208e4114b52767f5b0acb0 |