![]() |
Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Mein problem ist , dass
die Datei Android\Debug\provider_paths.xml immer wieder mit diesem inhalt überschrieben wird
Code:
Ich brauche aber diesen inhalt in der Datei
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="external_files" path="." /> </paths>
Code:
Wie kann ich dafür sorgen das die Datei nicht überschrieben wird oder der Inhalt so wie ich ihn brauche generiert wird?
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <external-path name="external_files" path="."/> <root-path name="root" path="."/> <external-files-path name="external_files" path="." /> <external-path name="external_files" path="Android/data/com.embarcadero.ShareFiletest/files"/> --> <root-path name="root" path="."/> </paths> gibt es dazu auch eine Template datei wie beim Manifest? |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Bist Du auf Tokyo oder in Rio unterwegs ?
In Rio braucht man keine Kastri-Permissions mehr. Ich würde versuchen nach dem Build mit dem ![]() |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Hm ok man kann die datein im "Bereitstellung"-tab deaktvieren und eine andere einbinden.
|
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Zitat:
insgesammt strauchle ich etwas bei dem ganzen File Provider und Canoniclized paths... und so ... bekomme einfach eine LOG datei nicht geteilt.... |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
[QUOTE=QuickAndDirty;1428887]
Zitat:
Man muss dann nur in den Entitlements "Secure file sharing" anclicken. Rollo |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Ich nutze diese funktion von Kastri free
TJFileProvider.JavaClass.getUriForFile Wo gibt es die in Delphi RIO ? BZW. was macht die funktion mit TandroidHelper.Context? Wenn es nur ein bisschen string verarbeitung ist kann man das vielleicht auch selber machen. HMM macht letztendes 'content://'+ID+'/root'+JStringToString(javafile.getCononicalPath); und verwandelt das in ein JNet_URI ....ding? wie bekomme ich ein JNET_URI das auf diesem string basiert? Edit: habs hinbekommen ohne KastriFree |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
OK wenn ich den URI selber aufbaue geht es auch mit der standard provider_paths.xml
Delphi-Quellcode:
unit Android.FileProviderService;
interface uses System.SysUtils , System.ioutils , Androidapi.JNI.Os , Androidapi.JNI.GraphicsContentViewText , Androidapi.JNI.JavaTypes , Androidapi.Helpers , Androidapi.JNI.Net , Androidapi.JNI.Webkit ; type TFileProviderService = Class public Class procedure SendFileViaFileProvideToChooser(file_name: string); Class procedure ViewFileViaFileProvider(file_name: string); End; implementation Class procedure TFileProviderService.SendFileViaFileProvideToChooser(file_name: string); var ExtFile,id, content: string; mime: JMimeTypeMap; ExtToMime: JString; Intent: JIntent; javafile: JFile; FileURI:JNet_URI; ParcelURI:JParcelable; begin javafile:=TJFile.JavaClass.init(StringToJString(file_name)); ExtFile := AnsiLowerCase(StringReplace(TPath.GetExtension(file_name), '.', '',[])); mime := TJMimeTypeMap.JavaClass.getSingleton(); ExtToMime := mime.getMimeTypeFromExtension(StringToJString(ExtFile)); Intent := TJIntent.Create; id := JStringToString( TAndroidHelper.Context.getApplicationContext.getPackageName ) + '.fileprovider'; content := 'content://' + id + '/root' + Jstringtostring( javafile.getCanonicalPath ); FileURI := TJnet_Uri.JavaClass.parse(StringtoJString(content)); Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.SetType(ExtToMime); ParcelURI := JParcelable(FileURI); Intent.PutExtra(TJIntent.JavaClass.EXTRA_STREAM, ParcelURI); SharedActivity.startActivity(TJIntent.JavaClass.createChooser(intent, StrToJCharSequence ('Share With'))); end; Class procedure TFileProviderService.ViewFileViaFileProvider(file_name: string); var ExtFile,id, content: string; mime: JMimeTypeMap; ExtToMime: JString; Intent: JIntent; javafile: JFile; FileURI:JNet_URI; begin javafile:=TJFile.JavaClass.init(StringToJString(file_name)); ExtFile := AnsiLowerCase(StringReplace(TPath.GetExtension(file_name), '.', '',[])); mime := TJMimeTypeMap.JavaClass.getSingleton(); ExtToMime := mime.getMimeTypeFromExtension(StringToJString(ExtFile)); Intent := TJIntent.Create; id := JStringToString( TAndroidHelper.Context.getApplicationContext.getPackageName ) + '.fileprovider'; content := 'content://' + id + '/root' + Jstringtostring( javafile.getCanonicalPath ); FileURI := TJnet_Uri.JavaClass.parse(StringtoJString(content)); Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setFlags(1); Intent.setDataAndType(FileURI, ExtToMime); // Intent.setDataAndType(StrToJURI(deger), ExtToMime); SharedActivity.startActivity(Intent); end; |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
Zitat:
![]() Und die Doku dazu auch: ![]() |
AW: Wie kann ich die Generierung von provider_paths.xml beeinflussen?
nochmal getestet...
es geht nur mit der modifizierte provider_paths.xml Datei. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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