如您所知,如果用户点击下载链接,我将从我的服务器上下载应用程序。当然,对于安装,用户将接受irder来安装它。因此,我想知道;是否可以从我的网站下载应用程序
- 是否可以从我的服务器下载软件包?如果是的话如何?
如您所知,如果用户点击下载链接,我将从我的服务器上下载应用程序。当然,对于安装,用户将接受irder来安装它。因此,我想知道;是否可以从我的网站下载应用程序
是的,这是可能的。确保您的服务器配置为使用适当的MIME类型。
AddType application/vnd.android.package-archive .apk
OR
<a href="apk location" type="application/vnd.android.package-archive">Download App</a>
要下载的APK在您的应用程序,你可以使用我的开源库here。虽然它是用于检查和下载更新的,但您也可以使用它来下载其他apk文件(或任何其他文件)。
在您的Activity中,将以下代码添加到您的onCreate()。然后
UpdateChecker checker = new UpdateChecker(this, true);
,使用下面的下载和安装更新:如果你不想Toast通知,第二个参数更改为false
。请注意,这将显示一个进度对话框同时下载:
checker.downloadAndInstall("URL with http:// to the location of the update apk");
如果Android框架下载了一个.apk文件,它会询问您是否要安装它。就那么简单。
这里是下载apk文件的代码:
String fileName="yourApk.apk";
try
{
File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath()+"/DownloadedApk/");
if(dir.exists()==false)
{
dir.mkdirs();
}
URL url = new URL("http://www.example.com/apk/yourApk.apk");
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
FileOutputStream fos = new FileOutputStream(dir+"/"+fileName);
byte data[] = new byte[1024];
long lenghtOfFile=ucon.getContentLength();
int count = 0;
long total = 0;
int progress = 0;
while (((count=is.read(data)) != -1))
{
total += count;
int progress_temp = (int) ((int)total*100/lenghtOfFile);
if(progress_temp%10 == 0 && progress != progress_temp)
{
progress = progress_temp;
publishProgress(progress);
}
fos.write(data, 0, count);
}
is.close();
fos.close();
} catch (Exception e)
{
Log.d("DownloadManager", "Error: " + e);
}
在Java代码中,我怎么能diwnload包? – gkotla
@ user1993428查看我的编辑 –
我可以使用您的代码通过我的应用程序帮助下载其他应用程序。我理解对吗? – gkotla