AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi 12 & Android: Zugriff auf externe Zwischenablage nicht möglich
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 12 & Android: Zugriff auf externe Zwischenablage nicht möglich

Ein Thema von Stewag · begonnen am 20. Feb 2024 · letzter Beitrag vom 20. Feb 2024
Antwort Antwort
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#1

Delphi 12 & Android: Zugriff auf externe Zwischenablage nicht möglich

  Alt 20. Feb 2024, 09:56
Ich beobachte ein seltsames Phänomen: Eine App, die unter Delphi 11 auf die Zwischenablage, die außerhalb der App erstellt wurde, zugreift, kann dies unter Delphi 12 nicht mehr.
An der Android Version liegt es nicht, denn es ist dieselbe Hardware.

Hier der Code, der unter D11 korrekt auf die ZA zugreift:
Code:
var
  clp: IFMXClipboardService;
  Value: TValue; // benötigt System.Rtti
begin
  if TryGetClipboardService(clp) then
  begin
    Value := clp.GetClipboard;
    if Value.IsEmpty = false then
    begin
      if Value.IsType<string> = true then
          Edit1.Text := Value.ToString
    end
  end
end;
Ich habe es auch mit dem Sample Demo Code aus Delphi 12 ("CopyPasteDemo") probiert.
Darin wird dieser Code für den Zugriff auf die Zwischenablage verwendet:
Code:
procedure TForm3.Button1Click(Sender: TObject);
var
  Svc: IFMXClipboardService;
  Value: TValue;
  Bitmap: TBitmap;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, Svc) then
  begin
    Value := Svc.GetClipboard;
    if not Value.IsEmpty then
    begin
      if Value.IsType<string> then
      begin
        PasteLabel.Text := Value.ToString;
        PasteImage.Bitmap := nil;
      end
      else if Value.IsType<TBitmapSurface> then
      try
        PasteLabel.Text := string.Empty;
        Bitmap := TBitmap.Create;
        try
          Bitmap.Assign(Value.AsType<TBitmapSurface>);
          PasteImage.Bitmap := Bitmap;
        finally
          Bitmap.Free;
        end;
      finally
        Value.AsType<TBitmapSurface>.Free;
      end;
    end;
  end;
end;
Auch das Demo kann zwar unter Windows mit dem "Paste" Button auf Text der Zwischenablage zugreifen, die nicht in der App erstellt wurde.
Unter Android ist das aber nicht möglich, der Paste Button zeigt dann nur Text der Zwischenablage, der zuvor im Register "Copy" erstellt wurde.

Die Verwendung von IFMXExtendedClipboardService, wie in diesem Artikel beschrieben, war auch nicht erfolgreich:
https://lecturepress.com/academy/obj...ard-in-delphi/

Ist das ein Bug oder muss der Zugriff auf die allgemeine ZA irgendwo autorisiert werden? (Die Berechtigung "Externen Speicher lesen" ist aktiviert)
Steffen

Geändert von Stewag (20. Feb 2024 um 12:01 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 12 & Android: Zugriff auf externe Zwischenablage nicht möglich

  Alt 20. Feb 2024, 12:22
Hast Du mal das IFMXExtendedClipboardService Interface probiert?

Zitat:
Die Android-Zwischenablage unterstützt keine Bilder. Damit Benutzer die Bilder zwischen Ihren eigenen Anwendungen kopieren und einfügen können, kann stattdessen ein benutzerdefiniertes Format verwendet werden.
Bei Kastri gibt es etwas für Bilder.
https://github.com/DelphiWorlds/Kast...Helper.iOS.pas
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi 12 & Android: Zugriff auf externe Zwischenablage nicht möglich

  Alt 20. Feb 2024, 13:00
Zitat:
Hast Du mal das IFMXExtendedClipboardService Interface probiert?
ja, hatte ich ja geschrieben.

In der ZA steht nur Text. Das mit den Bildern steht nur so im Sample der D12 Demo.

Aber auch mit Text klappt es nicht.
Steffen
  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 00:02 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