Распространять APK на веб-сервере

#php #android #installation #download #apk

#php #Android #установка #Скачать #apk

Вопрос:

Я создал приложение и хочу, чтобы пользователи могли загружать и устанавливать приложение с моего веб-сайта на свое устройство (телефон). Я использовал 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?

Что касается первой проблемы… «Я не могу установить приложение»… Я не могу установить приложение из загрузок браузера. Я должен установить приложение из файлового менеджера. Это потому, что я изменил безопасность, чтобы я мог устанавливать неизвестные приложения из файлового менеджера. Итак, это решено

Комментарии:

1. Вы можете сделать все с помощью правильного кода.

2. Что касается первой проблемы… «Я не могу установить приложение»… Я не могу установить приложение из загрузок браузера. Я должен установить приложение из файлового менеджера. Это потому, что я изменил безопасность, чтобы я мог устанавливать неизвестные приложения из файлового менеджера.

Ответ №1:

filename после Content-Disposition: attachment; ожидается ИМЯ файла, которое вы хотите, чтобы файл был назван при его сохранении, а не путь к существующему файлу.

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

Также, если вы хотите обслуживать APK напрямую со своего сервера по ссылке, я подозреваю, что вам нужно будет добавить эту строку в свой .htaccess на apache, поскольку APK не является mime по умолчанию. После этого вы можете напрямую ссылаться на файл и разрешить им загружать его без дополнительного программирования.

AddType application/vnd.android.package-archive apk