Bonjour,
je suis en train de tenter un lecture de PDF sur Androïd et je butte sur plusieurs problèmes
Tout d'abord les permissions :
je voudrais faire en sorte que le fichier soit copié dans un autre répertoire (GetSharedDocumentsPath, idéalement GetTempPath) de cette manière
Quelles permissions sont nécessaires pour accéder à GetSharedDocumentsPath ou, mieux, sur GetTempPath ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 FileName := TPath.Combine(TPath.GetDocumentsPath, 'demo.pdf'); SharedFileName:=TPath.Combine(TPath.GetSharedDocumentsPath,'demo.pdf'); if TFile.Exists(FileName) then try TFile.Copy(FileName,SharedFileName,true); except end; // Try car j'ai une erreur
Et comment le faire : dans les options/permissions du projet, ou à la création du programme ?
Ensuite, pour lire le fichier pdf, j'utilise le code de Daniele Teti
à une différence près car il m'est indiqué d'utilisé le helper plutôt que le SharedActivity "déprécié"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // start PDF viewer Intent := TJIntent.JavaClass.init; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJUri('file://'+FileName), StringToJString('application/pdf')); // Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY or // TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP); try // SharedActivity.StartActivity(Intent); // déprécié utiliser helper TAndroidHelper.Activity.StartActivity(Intent); // TAndroidHelper.Activity.startActivityForResult(Intent, <quoi mettre ?>); except on e:Exception do ShowMessage('JNI Impossible '+'file://'+FileName+slinebreak+E.message); end;
Mais cela revient au même, le browser se lance et l'appli reprend la main aussitôt Je déconne où ?
Partager