Google Apps不会从Firemonkey应用

时间:2017-11-15 00:36:28

标签: android delphi android-intent firemonkey delphi-10.1-berlin

我希望在Android上实现类似ShellExcute()的内容。

我想使用Intent在外部应用中打开文件。

我认为在测试时效果很好,但对于xlsxpptpdf扩展程序,我的默认Google应用程序(电子表格,演示文稿,驱动PDF查看器)未收到文件。

Google应用中的图片和图库没有问题。

所以,如果我得到MIME-Type并且没有应用程序,我的代码会引发异常:

image

我可以处理异常,但即使我将MIME类型设置为*/*,Google应用也不会显示在选择列表中。

这就是为什么我有一个基本的Google应用程序,它迫使用户安装第三方应用程序。

我应该如何处理Google应用以获取Intent

当我在设备上使用ES文件资源管理器打开相应的文件时,这些Google应用程序运行良好。

在测试我的设备和模拟器时,同样会出现此问题。

以下是我测试的示例代码:

uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  Androidapi.Helpers,
  System.IOUtils,
  Androidapi.JNI.Webkit;

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
  Intent: JIntent;
  filename: String;
  t: JString;
begin
  filename := Edit1.text;
  Intent := TJIntent.Create;

  // Get MIME Type
  t := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension
        (StringToJString (StringReplace (TPath.GetExtension(filename), '.', '', [])));
  if t = nil then
    t := StringToJString('*/*');

  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(StrToJURI(TPath.GetPublicPath + PathDelim + filename),  t);
  SharedActivity.startActivity(Intent);
end;

0 个答案:

没有答案