为安装提供 android 个 APK 文件,application/vnd.android.package-archive 解析错误

Serving android APK files for installation, application/vnd.android.package-archive parse error

我希望能够通过浏览器下载从我自己的服务器下载和安装 android 应用程序包 (APK)。这似乎在最新版本的 android 中被隐藏了 “解析包时出现问题”消息。在过去(我忘记了 android 的哪个版本)这工作得很好。需要帮助使其在 Android 11.

中工作

这是用于提供文件的 header 内容:

   header('Content-Description: File Transfer');
   header('Content-Type: application/vnd.android.package-archive');
   header("Content-Disposition: attachment; filename=\"".$filename.'"');
   header('Content-Transfer-Encoding: binary');
   header('Expires: 0');
   header('Cache-Control: must-revalidate');
   header('Pragma: public');
   header('Content-Length: ' . filesize($androidPackage));

此外,服务器上 APK 文件的 MIME 设置为 application/vnd.android.package-archive

以下 phone 配置发生解析错误: Verizon 网络上的三星 Galaxy S10 Android 版本 11 (API 30) APK 构建目标 28,最小 21

我为浏览器启用了特殊的 access:install 未知应用程序。

应用程序仍然无法从浏览器(指向我服务器的网站)安装。

我已经能够将 apk 文件上传到 google 驱动器并从那里安装(在允许 google 驱动器安装未知应用程序之后),所以这似乎不是问题APK 文件,但存在浏览器权限问题。

我还可以使用开发人员调试将它安装到我的本地设备。

CommonsWare 建议奏效了。

如果我将浏览器直接指向该文件,它将在首先警告用户安装未知应用程序后安装。

<a href="MyApp.apk">Direct Download</a>