【问题标题】:starting an apk in a android delphi seattle application error在 android delphi 西雅图应用程序错误中启动 apk
【发布时间】:2016-08-07 02:23:29
【问题描述】:

出于多种原因,我不想使用 Google Play 机制来升级 android 应用程序。所以我决定自己做一个系统来下载和升级一个android应用程序。

第一步:下载更新.apk文件。

第 2 步:在原始应用程序中放置一个按钮,以便用户单击它以启动 .apk 进行升级。

以下代码给了我一个错误。

  procedure TfrmUpdateProgram.DoUpgrade;  
  {$IF DEFINED(IOS) or DEFINED(ANDROID)}
    var Intent : JIntent;
  {$ELSE}
  {$ENDIF}
  begin
    {$IF DEFINED(IOS) or DEFINED(ANDROID)}
      Intent := TJIntent.Create;
      Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      Intent.setDataAndType(StrToJURI(newAPKFile), StringToJString('application/vnd.android.package-archive'));

      SharedActivityContext.startActivity(Intent);
      Application.Terminate;

    {$ELSE}
      ShellExecute(0, PWideChar('Open'), PWideChar(newAPKFile), nil, nil, SW_HIDE);
    {$ENDIF}
  end;

android.content.activitynotfoundexception:未找到处理意图的活动 {act=android.intent.action.view dat=/storage.....update.apk typ=application/vnd.android.package-archive flg= 0x1000000}

有什么想法吗?

【问题讨论】:

标签: android delphi-10-seattle


【解决方案1】:

尝试删除对Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK) 的调用,这不是必需的。

在启动 Intent 之前,确保 .apk 文件是全球可读的,除非您将其存储到公共外部文件夹中。并确保它可以通过file: URI 访问。

并确保您的 Android 设备已配置为允许安装来自未知来源的应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多