![]() |
Probleme auf Android 12 und 13 mit TJPendingIntent
Folgender Code scheitert auf Android 12 und 13
Delphi-Quellcode:
mit folgender Fehlermeldung
var
ClassIntent: JIntent; ClassIntent := TJIntent.JavaClass.init(TAndroidHelper.Context, TAndroidHelper.Activity.getClass); PendingIntent := TJPendingIntent.JavaClass.getActivity(TAndroidHelper.Context, 0, ClassIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_SINGLE_TOP or TJPendingIntent.JavaClass.FLAG_IMMUTABLE), 0);
Delphi-Quellcode:
Wie soll ich das TJPendingIntent.JavaClass.FLAG_IMMUTABLE Flag setzen?
java.lang.IllegalArgumentException: <appname> Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
hat einer ne Idee? Benutze Delphi 11.3, frisch installiert..(also update von 11.1) |
AW: Probleme auf Android 12 und 13 mit TJPendingIntent
Ich bin ein bisschen gierig nach Aufmerksamkeit.
Ist das eine Known issue? Ist mein googlefoo zu schlecht? Edit:Ich habe den code mal in wie folgt geändert...führt aber nicht zu einer verbesserung bei Android 12 und 13
Delphi-Quellcode:
Const
FLAG_MUTABLE:Integer =$02000000; FLAG_IMMUTABLE:Integer =$04000000;//TJPendingIntent.JavaClass.FLAG_IMMUTABLE Begin Flags := TJIntent.JavaClass.FLAG_ACTIVITY_SINGLE_TOP; TLog.d('OSVersion: Major='+TOSVersion.Major.tostring+' Minor='+TOSVersion.Minor.ToString+' Name='+TOSVersion.Name); If TOSVersion.Major>=12 then // >= Android 12 Flags := Flags or FLAG_MUTABLE; ClassIntent := TJIntent.JavaClass.init(TAndroidHelper.Context, TAndroidHelper.Activity.getClass); PendingIntent := TJPendingIntent.JavaClass.getActivity(TAndroidHelper.Context, 0, ClassIntent.addFlags(Flags), 0); FNFCPresent := false; end; |
AW: Probleme auf Android 12 und 13 mit TJPendingIntent
[OT]aaaaaaaaaaaaah[/OT]
Oh man lesen. LESEN! Hilft total... unglaublich. Warum hat mir das keiner gesagt? Was ist das füe eine Community?
Delphi-Quellcode:
Der letzte Parameter von getActivity heist "Flags".
var
ClassIntent: JIntent; Flags:Integer; Const FLAG_MUTABLE:Integer =$02000000; FLAG_IMMUTABLE:Integer =$04000000;//TJPendingIntent.JavaClass.FLAG_IMMUTABLE FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT:Integer = $01000000; Begin Flags := TJIntent.JavaClass.FLAG_ACTIVITY_SINGLE_TOP; TLog.d('OSVersion: Major='+TOSVersion.Major.tostring+' Minor='+TOSVersion.Minor.ToString+' Name='+TOSVersion.Name); If TOSVersion.Major>=12 then // >= Android 12 Flags := Flags or FLAG_MUTABLE; ClassIntent := TJIntent.JavaClass.init(TAndroidHelper.Context, TAndroidHelper.Activity.getClass); PendingIntent := TJPendingIntent.JavaClass.getActivity(TAndroidHelper.Context, 0, ClassIntent.addFlags(Flags), Flags); end; Das ist vermutlich noch nicht optimal... aber es geht wenigstens schonmal ... von hieraus muss ich noch etwas testen... ob ClassIntent wirklich auch diese Flags braucht oder nur der Aufruf von TJPendingIntent.JavaClass.getActivity |
AW: Probleme auf Android 12 und 13 mit TJPendingIntent
Der Sichdamitauskennende ist vielleicht grade im Urlaub (oder breits an Altersschwäche ausgestorben).
|
AW: Probleme auf Android 12 und 13 mit TJPendingIntent
Zitat:
Naja , wenigstens bin ich jetzt mit dem Problem durch. |
AW: Probleme auf Android 12 und 13 mit TJPendingIntent
Hallo,
ja, da hate sich glaube ich was im Android geändert. Solche Änderungen sind immer ein bischen doof. Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz