![]() |
Problema para adjuntar archivo a un email
Hola, espero alguien tenga una idea de como encarar esto, ya que no le veo solución y hay muy poca info al respecto, intento crear un email con información ya cargada y adjuntar un archivo de texto (*.csv) uso intents ya que indy no funciona pero obtengo un error que no puedo resolver.
Estoy usando Delphi Comunity Edition 10.4 y pruebo la app en un Moto G52 con android 12 Cito el código y el error a continuación:
Cito el error que se genera: https://drive.google.com/file/d/1F_M...ew?usp=sharing Agradecería cualquier ayuda al respecto. Gracias por su tiempo. |
Antes que nada, recuerda que debes crear un archivo xml que contenga las rutas a las que el fileprovider tendrá acceso para crear el URI correspondiente a tu archivo.
quedando asi: <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <files-path name="internal_private_files" path="." /> <cache-path name="internal_cache_files" path="." /> <external-path name="external_public_files" path="." /> <external-files-path name="external_private_files" path="." /> <external-cache-path name="external_cache_files" path="." /> <external-media-path name="external_media_files" path="." /> </paths> Recuerda también configurar el "remote path" de tu xml en las configuraciones de tu proyecto como "res\xml". También tu Archivo "AndroidManifest_Template" debe tener la siguiente estructura: <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%" android:resizeableActivity="false" android:requestLegacyExternalStorage="true"> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.ejemplo.TuApp.fileprovider" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider> <%application-meta-data%> <%uses-libraries%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) --> Finalmente el uso del fileprovider para el envío de un archivo mediante un intent se ve asi: (Cabe mencionar que deberás adaptar el código para mandar el archivo vía correo electrónico)
El código anterior lo tomé de una app donde el usuario selecciona por qué medio mandar los logs de operación y excepciones. Como te mencioné ya solo sería cuestión tuya adaptarlo para mandar el archivo por correo. |
La franja horaria es GMT +2. Ahora son las 05:28:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi