![]() |
Teilen in Android 10 funktioniert. In Android 6 leider nicht. Warum?
Der Code funktioniert unter Android 10.
Er öffnet den FileChooser und zeigt eine Auswahl an Messenger und Mail Programmen. Wenn ich googlmail antippe wird die Datei im Anhang des Email Formulars verschickt. Der Code funktioniert nicht unter Android 6 Er öffnet den Filechooser und zeigt eine Auswahl an Messenger und Mail Programmen. Wenn ich googlmail oder Sonymail antippe wird der Dateipfad im absender angezeigt aber kein Anhang bereit gestellt, weil es keine Berechtigung auf den Pfad der Datei gibt. Außerdem wird der URI pfad als Adressat im Mailprogramm eingetragen.... Im delphi-projekt ist Berechtigung für "Sichere Dateifraigabe" angehakt. Und es funktioniert ja unter Android 10, also alles notwendige dafür ist getan. Was muss ich machen damit der Code auch unter Android 6 funktioniert?
Delphi-Quellcode:
file_name ist quasi:
unit Android.FileProviderService;
interface uses System.SysUtils , System.ioutils {$IFDEF ANDROID} , Androidapi.JNI.Os , Androidapi.JNI.GraphicsContentViewText , Androidapi.JNI.JavaTypes , Androidapi.Helpers , Androidapi.JNI.Net , Androidapi.JNI.Webkit , Androidapi.JNIBridge {$ENDIF} ; type TFileProviderService = Class public Class procedure SendFileToChooser(file_name: string); End; implementation Class procedure TFileProviderService.SendFileToChooser(file_name: string); {$IFDEF ANDROID} var theFile: JFile; Intent: JIntent; FileURI:JNet_URI; ParcelURI:JParcelable; {$ENDIF} begin {$IFDEF ANDROID} theFile := TJFile.JavaClass.init(StringToJString(file_name)); FileURI := TAndroidHelper.JFileToJURI(theFile); ParcelURI := JParcelable(FileURI); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setDataAndType(fileuri,StringtoJstring('application/*')); Intent.PutExtra(TJIntent.JavaClass.EXTRA_STREAM, ParcelURI); Intent.SetFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); SharedActivity.startActivity(TJIntent.JavaClass.createChooser(intent, StrToJCharSequence ('Share With'))); {$ENDIF} end;
Delphi-Quellcode:
Die Datei existiert und ist nicht geöffnet.
file_name := TPath.Combine(TPath.GetHomePath, 'logdatei_Email_Kopie.log');
|
AW: Teilen in Android 10 funktioniert. In Android 6 leider nicht. Warum?
Hast du die Mail-App vorher einmal gestartet, damit diese Zugriff auf den Speicher erhält?
Laut einigen Internetseiten gab es da ab Android 7 erst Änderungen und vorher kann es zu solchen Problemen kommen, weil sie nicht automatisch danach fragt. Leider finde ich die Quelle dazu gerade nicht mehr. Hier ![]() |
AW: Teilen in Android 10 funktioniert. In Android 6 leider nicht. Warum?
Mit Android 7-10 geht es. Ich nutze ja den Fileprovider und die sichere Dateifreigabe.
Mit Android 6 geht es nicht... Ich guck mir noch eben den Link an. Und sag nach den feiertagen bescheid |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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