Share file from internal storage
lazarus / 43-Android
----------------------------------------------------------------------
dseligo · 2024-08-08 12:25
I am trying to share file from internal storage (as an email
attachment or with Whatsapp or similar, I don't care at this point).
I tried to mimic accepted answer from here:
https://stackoverflow.com/questions/47955490/share-text-file-via-
intent-from-internal-storage.
So I created a file res/xml/provider_paths.xml with following content:
Code: XML [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
To the AndroidManifest.xml I added:
Code: XML [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i ... ... ...
...
And then tried this code:
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i procedure
TAndroidModule1.Button1Click(Sender: TObject);const cFile =
'proba.txt';var Uri: jObject; sFullPath: String; f:
TextFile;begin sFullPath :=
GetEnvironmentDirectoryPath(dirInternalAppStorage) + '/' + cFile;
// create file if necessary if not FileExists(sFullPath) then begin
AssignFile(f, sFullPath); Rewrite(f); WriteLn(f,
FormatDateTime('hh:nn:ss', Now)); WriteLn(f, 'proba1.');
CloseFile(f); end; Uri := GetUriFromFile(sFullPath);
jIntentManager1.SetAction('android.intent.action.SEND');
jIntentManager1.PutExtraText('test');
jIntentManager1.PutExtraFile(Uri);
jIntentManager1.AddFlag(ifGrantReadUriPermission);
jIntentManager1.SetMimeType('plain/*'); if
jIntentManager1.ResolveActivity then If
jIntentManager1.StartActivity('Send Email ...') then
ShowMessage('Activity started') else ShowMessage('Activity not
started') else ShowMessage('Not resolved');end;
I get 'Activity not started'.
Then I changed code to:
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i ... Uri
:= GetUriFromFile(sFullPath);
jIntentManager1.SetAction('android.intent.action.SEND');
jIntentManager1.SetMimeType('text/plain'); //
jIntentManager1.SetMimeType('message/rfc822'); // if I don't have
those 3 lines I get message 'Activity not started' below jIntentManag
er1.SetDataUri(jIntentManager1.GetMailtoUri('mymail@mymail.com'));
jIntentManager1.PutExtraMailSubject('Test 1');
jIntentManager1.PutExtraMailBody('This is test 1.' + LineEnding +
LineEnding + 'Regards'); jIntentManager1.PutExtraFile(Uri);
jIntentManager1.AddFlag(ifActivityNewTask);
jIntentManager1.AddFlag(ifGrantReadUriPermission); if
jIntentManager1.ResolveActivity then If
jIntentManager1.StartActivity('Send Email ...') then...
Now the activity is started (Outlook is shown with mail, subject and
body), but I get message 'Unable to add attachment'.
What can I do?
Does some have some example how to share/send attachment?