Не удается открыть PDF-файл из приложения для Android с помощью Delphi

#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. Да. Это было включено.