#android #delphi #firemonkey #delphi-10.4-sydney
Вопрос:
Я использую Delphi 10.4 для разработки мобильного приложения для Android. Мне нужно открыть PDF как онлайн, так и локально.
С помощью этого кода я могу открыть файл PDF, который находится в сети, но не могу открыть файл из локального.
procedure openPdf(InpStrPDFPath: string);
var
LIntent: JIntent;
begin
LIntent := TJIntent.Create;
LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW);
LIntent.setDataAndType(StrToJURI(InpStrPDFPath), StringToJString('application/pdf'));
SharedActivity.StartActivity(LIntent);
end;
И попробовал следующий код:
procedure OpenPD_Local(InpStrPDFPath: string);
var
LIntent: JIntent;
LUri: Jnet_Uri;
begin
LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
LUri := StrToJURI(InpStrPDFPath);
LIntent.SetDataAndType(LUri, StringToJString('application/pdf'));
LIntent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
TAndroidHelper.Activity.startActivity(LIntent);
end;
Когда я использую приведенный выше код, он пытается открыть установленное средство чтения PDF, но не может открыть файл. Пожалуйста, предоставьте мне любое предложение, чтобы открыть PDF-файл локально в Android с помощью Delphi.
Комментарии:
1. Где хранится этот локальный PDF-файл?
2. Система. Я знаю. TPath.GetSharedDownloadsPath ‘/’ ‘1.pdf’
3. Если вы используете StrToJURI, вам необходимо включить Безопасный общий доступ к файлам в списке прав в Параметрах проекта
4. Да. Это было включено.