Android应用未安装

时间:2013-10-14 09:11:52

标签: php android header

我有一个链接。当用户单击该链接时,它将更新数据库上的计数,并且将安装应用程序。

<a style="text-decoration: none" mimeType="application/vnd.android.package-archive"  href="http://way2enjoy.com/touch/w2et/appdownload.php?file=http://way2enjoy.com/android/Way2Enjoy.apk?32" target="_new">Download Android <img src="http://www.way2enjoy.com/touch/w2et/android32.png" />app</a>

我已经通过直接指向android文件尝试了这个文件,它安装没有任何问题,但当我通过这个链接它似乎工作,在PC和Android文件下载,但当我尝试安装文件在android中我得到解析错误。

这是我的appdownload.php代码

$c=explode("?",$_SERVER[ 'REQUEST_URI' ]);  $city=end($c); 

$c=explode("?file=",$_SERVER[ 'REQUEST_URI' ]);  $city1=end($c); 

$content = file_get_contents($city1);

header("Content-Type: application/vnd.android.package-archive"); 
header("Content-Disposition: attachment; filename=Way2Enjoy.apk");
mysql_query("update table SET count=count+1 where id='$city'");
echo $content;

mysql count增加没有任何问题,文件也被下载但该文件没有安装在android中。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您应该在MySQL语句中使用错误处理,因为您只是回显文件内容,如果其他一些语句在OutputStream中回显错误,则会破坏APK。

更好的方法是重定向到这样的文件: header('Location: http://way2enjoy.com/android/Way2Enjoy.apk');。实际上我从来没有用Android apks尝试这个,但它应该可以工作。

答案 1 :(得分:0)

我认为这是因为php代码只是启动下载并递增计数器。 您无法确定用户是否最终安装了该应用。

我不知道您是否是Android应用的所有者。在这种情况下,您可以从Android应用程序增加计数器,以确保应用程序已正确安装。

希望它有所帮助!