【问题标题】:Distribute APK on webserver在网络服务器上分发 APK
【发布时间】:2020-08-13 19:58:46
【问题描述】:

我创建了一个应用,并希望用户能够从我的网站下载并在他们的设备(手机)上安装该应用。 我使用了 Android Studio 并生成了一个签名的 APK。现在我有 2 个文件(app-release.apk 和 output.json)

我尝试了一些代码,但其中大多数我得到“HTTP ERROR 500”,然后我尝试了这个简单的代码(PHP):

$file_name  = "app-release.apk";
$file_ext   = "apk";
$file_path  = 'my/app/folder/' . $file_name;
header("Cache-Control: public");
header("Content-description: File Transfer");
$contenttype = "application/com.android.package-install";
header("Content-Type: " . $contenttype);
header("Content-Disposition: attachment; filename=\"".$file_path."\""); 
header("Content-Tranfer-Encoding: binary");
readfile($file_path);

有了这个,我可以在设备上下载 APK。 但是……

  1. 我无法安装应用程序。它只是说“无法打开”。
  2. 设备下载文件夹中的 APK 名称更改为这个 --> my_app_folder_app-release.apk 而且我不希望用户看到网站结构/文件夹。

好吧,我的问题是。 如何让用户从网络服务器/网站正确下载和安装 APK。 以及如何防止 APK 名称更改?

对于第一个问题...“我无法安装应用程序”...我无法通过浏览器下载安装应用程序。我必须从文件管理器安装应用程序。这是因为我更改了安全性,因此我可以从文件管理器安装未知应用程序。 这样就解决了

【问题讨论】:

  • 您可以使用正确的代码完成所有工作。
  • 对于第一个问题...“我无法安装应用程序”...我无法从浏览器下载中安装应用程序。我必须从文件管理器安装应用程序。这是因为我更改了安全性,因此我可以从文件管理器安装未知应用程序。

标签: php android installation download apk


【解决方案1】:

filename 在Content-Disposition: attachment; 之后需要您希望在保存文件时命名的文件的名称,而不是现有文件的路径。

header('Content-Disposition: attachment; filename="$file_name"');

此外,如果您想通过链接直接从服务器提供 APK,我怀疑您需要将此行添加到 apache 上的 .htaccess,因为 APK 不是默认的 mime。之后,您可以直接链接到该文件并允许他们下载,而无需额外编程。

AddType application/vnd.android.package-archive apk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2017-11-26
    • 1970-01-01
    • 2011-02-19
    • 2011-08-03
    • 2011-04-18
    相关资源
    最近更新 更多