![]() |
Abrir Pdf En Api 26
Hola.
Al compilar para api 26 en Rio, al abrir un pdf obtengo este error que antes no aparecía android.os.FileUriExposedException: file:///Storage/emulated/0/Download/AppDataDetails/trabajo.pdf exposed beyond app through Intent.getData() uses Androidapi.JNI.JavaTypes, Androidapi.JNI.Net, Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers;procedure OpenPDF(const AFileName: string);var LIntent: JIntent; LAuthority: JString; LUri: Jnet_Uri;begin LAuthority := StringToJString(JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName)+'.fileprovider'); LUri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, LAuthority, TJFile.JavaClass.init(StringToJString(AFileName))); LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW); LIntent.setDataAndType(LUri, StringToJString('application/pdf')); LIntent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); TAndroidHelper.Activity.startActivity(LIntent);end;El código es
Buscando he encontrado una solución You'll need this unit: https://github.com/DelphiWorlds/Kast...leProvider.pas for this code: Pero ahora me da error java.lang.illegalArgumentsException Failed to find configured root that contains /file: /data/user/0/com.embarcadero.PRODUCCION/files/trabajo.pdf El pdf lo leo de una base de datos y lo grabo así:
Alguna idea?, gracias de antemano |
Para que el lector de pdf pueda abrir el fichero tienes que ponerlo en un directorio compartido, no vale tenerlo en el directorio de tu programa.
Y lo mismo es para cualquier otra cosa similar, como ver fotos con otro programa que no sea el tuyo, etc. |
Cita:
y cual seria un path adecuado?, es que he probado con
Y sigo teniendo el error |
Cita:
Por favor, recuerda añadir TAG's al mensaje cuando utilices código Delphi. No se si tiene que ver con el error que te da en este último código, pero es reciomentable que utilices TPath.Combine cuando accedas al fichero,igualque lo has utilizado para grabarlo. Revisa este llink de Javier Pareja sobre este tema, a ver si te aporta algo de información. |
Solucionado!
Gracias Germán.
Accediendo como comentas funciona perfectamente, y en base a eso me he dado cuenta que tenía un error
y debia ser:
Así no encontraba el path.... Al menos ahí queda el aporte, el código que encontré en stackoverflow funciona a la perfección. Sorry por los tags Gracias por vuestro tiempo. |
Consulta
Disculpa, podrias compartir el proyecto?. Estoy tratando de hacer lo mismo y no logro tener exito. Saludos
|
La franja horaria es GMT +2. Ahora son las 05:54:50. |
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