Einzelnen Beitrag anzeigen

QuickAndDirty

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

Share file via Provider

  Alt 25. Mär 2019, 15:10
Android erlaubt ja nun nicht mehr dass man Dateien die in der Sandbox liegen per EMail-App verschickt.
Also wollte ich die Datei einfach "teilen" , wie es so schön heist...dann kann man sie per WhatsApp, Email oder Googledrive versenden.

Dazu ist soweit ich weiß folgendes notwendig.
Also ich muss setzen
->Projekt Optionen->Anwednung->Berechtinungsliste->Sichere Dateifreigabe = true
->Projekt Optionen->Anwednung->Berechtigungnen->Externen Speicher lesen = true
->Projekt Optionen->Anwednung->Berechtigungnen->Externen Speicher Schreiben = true

Habe hier also eine "Ein button App". Eine Actionlist und der Button hat eine Aktion vom Typ TShowShareSheetAction zugewiesen bekommen.
Damit kann man bitmaps "teilen".
Wie kann ich aber jede Art Datei teilen?

Delphi-Quellcode:
unit ShareFileForm;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Actions,
  FMX.ActnList, FMX.Controls.Presentation, FMX.StdCtrls,FMX.MediaLibrary.Actions,
  FMX.StdActns, ioutils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ActionList1: TActionList;
    ShowShareSheetAction1: TShowShareSheetAction;
    procedure ShowShareSheetAction1BeforeExecute(Sender: TObject);
  private
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

Const Loremipsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies sem a feugiat vulputate.'+
                   ' Nam euismod vitae nibh pulvinar ornare. Aliquam in tincidunt eros, eu viverra mi. Proin rutrum '+
                   'faucibus turpis vel pulvinar. Maecenas a mauris ac lectus feugiat dictum. Vestibulum mollis purus'+
                   ' quis massa finibus, non pellentesque lorem porta. Maecenas ullamcorper eleifend justo, et suscipit'+
                   ' ligula consectetur tincidunt. Fusce ut egestas ligula. In malesuada venenatis dui, et aliquet sem'+
                   ' hendrerit in. Nulla metus risus, laoreet vel ornare id, condimentum nec mauris. Vestibulum nibh urna,'+
                   ' pellentesque non semper non, condimentum sed mi. Nunc non justo et ante finibus euismod. Nunc nulla ante,'+
                   ' hendrerit ut pulvinar scelerisque, sollicitudin at tellus. Integer accumsan eu arcu in luctus.'+
                   ' In eros leo, convallis non ullamcorper nec, convallis eu augue.';

procedure TForm1.ShowShareSheetAction1BeforeExecute(Sender: TObject);
var fLogFile:String;
begin
{$IFDEF ANDROID}
  fLogFile := TPath.Combine(TPath.GetHomePath, 'Testfile.log' );
{$ENDIF}
{$IFDEF IOS}
  fLogFile := TPath.Combine(TPath.GetDocumentsPath, 'Testfile.log' );
{$ENDIF}
{$IFDEF WIN32}
  fLogFile := TPath.Combine(TPath.GetDirectoryName(paramstr(0)), TPATH.GetFileNameWithoutExtension(paramstr(0)) +'.log' );
{$ENDIF}
  TFile.WriteAllText( fLogFile, Loremipsum, TEncoding.UTF8);
  ShowShareSheetAction1.Bitmap.LoadFromFile(fLogFile);
end;

end.
meldet wie erwartet Laden des Bitmaps fehlgeschlagen...

Wie bekomme ich das mit einer textdatei hin?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (25. Mär 2019 um 15:35 Uhr)
  Mit Zitat antworten Zitat