Я пытаюсь загрузить файл APK Android, который выводится на странице php. Скачивание выполняется успешно, но проблема с пакетом парсов возникает при попытке установить файл apk. На самом деле, доступ к файловому пути (/var/www/xxx/HelloWorldTest.apk) напрямую, этот метод установлен полностью. (Без проблем.) Но я хочу использовать метод, который через источник php.загрузка Android-бинарного файла (apk) в php, анализ пакета ошибок при установке файла apk
У меня есть Android-приложение на моем сервере, а также есть PHP код, как:
<?php
$path = "/var/www/xxx/";
$filename="HelloWorldTest.apk";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
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("Content-Length: " . filesize($path . $filename));
readfile($path . $filename);
?>
Have HelloWorldTest (Android приложение) Manifest нравится:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworldtest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.helloworldtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Моя установка: CentOS релиз 6.3 (Final), 2.6.32-279.5.2.el6.x86_64, PHP 5.3.17 Таблица Android Версия: 3.2.1 версия ядра: 2.6.36.3
Существует разница b inary dump при использовании метода прямого доступа и использовании результата метода php.
прямой доступ (успех)
50 4B 03 04 14 00 08 08 08 00 F5 91 76 42 00 00
00 00 00 00 00 00 00 00 00 00 1C 00 04 00 72 65
73 2F 6C 61 79 6F 75 74 2F 61 63 74 69 76 69 74
79 5F 6D 61 69 6E 2E 78 6D 6C FE CA 00 00 6D 91
...
с помощью PHP (установить не удалось)
0A 0A 50 4B 03 04 14 00 08 08 08 00 F5 91 76 42
00 00 00 00 00 00 00 00 00 00 00 00 1C 00 04 00
72 65 73 2F 6C 61 79 6F 75 74 2F 61 63 74 69 76
69 74 79 5F 6D 61 69 6E 2E 78 6D 6C FE CA 00 00
.....
Проблема, кажется, начальная часть [0A 0A] был добавлен в двоичном коде.