AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Probleme auf Android 12 und 13 mit TJPendingIntent
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme auf Android 12 und 13 mit TJPendingIntent

Ein Thema von QuickAndDirty · begonnen am 5. Jun 2023 · letzter Beitrag vom 8. Jun 2023
Antwort Antwort
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#1

Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 5. Jun 2023, 16:33
Folgender Code scheitert auf Android 12 und 13
Delphi-Quellcode:
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);
mit folgender Fehlermeldung
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. Wie soll ich das TJPendingIntent.JavaClass.FLAG_IMMUTABLE Flag setzen?

hat einer ne Idee?

Benutze Delphi 11.3, frisch installiert..(also update von 11.1)
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 5. Jun 2023 um 17:43 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 6. Jun 2023, 10:21
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;
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 6. Jun 2023 um 12:35 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#3

AW: Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 6. Jun 2023, 13:03
[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:
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;
Der letzte Parameter von getActivity heist "Flags".
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
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 6. Jun 2023 um 13:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 6. Jun 2023, 14:36
Der Sichdamitauskennende ist vielleicht grade im Urlaub (oder breits an Altersschwäche ausgestorben).
$2B or not $2B
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#5

AW: Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 7. Jun 2023, 10:22
Der Sichdamitauskennende ist vielleicht grade im Urlaub (oder breits an Altersschwäche ausgestorben).
Hauptsache er ist nicht auch zu den Youtube-Tutorial-Konsumenten übergelaufen. Wir brauchen doch mindestens einen Sensei der sich auskennt und die Kunst des Lesens gemeistert hat.
Naja , wenigstens bin ich jetzt mit dem Problem durch.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#6

AW: Probleme auf Android 12 und 13 mit TJPendingIntent

  Alt 8. Jun 2023, 12:54
Hallo,

ja, da hate sich glaube ich was im Android geändert.
Solche Änderungen sind immer ein bischen doof.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz