Android实例-IdHTTP下载(并实现自动安装)

相关资料:

1.群号 383675978

2.运行时提示"connection closed gracefully"错误原因与解决 http://www.delphifans.com/InfoView/Article_4588.html

3.编译时提示"[Exec Error] The command ..... exited with code 1."错误原因不明,解决方法删除androidSDK,下载新版本的,引入新版本的SDK。

实例源码:

  1 unit Unit1;
  2
  3 interface
  4
  5 uses
  6   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  7   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  8   FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects,
  9   System.IOUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
 10   Androidapi.Jni.Net,//TJnet_Uri使用
 11   Androidapi.JNI.JavaTypes, //Jfile使用
 12   Androidapi.JNI.GraphicsContentViewText,//JIntent使用
 13   Androidapi.Helpers,//stringtojstring使用
 14   IdHTTP;//TPath使用
 15
 16 type
 17   TForm1 = class(TForm)
 18     Label1: TLabel;
 19     ProgressBar1: TProgressBar;
 20     Label2: TLabel;
 21     Button1: TButton;
 22     IdHTTP1: TIdHTTP;
 23     procedure Button1Click(Sender: TObject);
 24     procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
 25       AWorkCount: Int64);
 26     procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
 27       AWorkCountMax: Int64);
 28     procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
 29   private
 30     { Private declarations }
 31     isDown:Boolean;
 32     function DownFilePath: string;
 33   public
 34     { Public declarations }
 35   end;
 36
 37 const
 38   FileName = ‘test.apk‘;
 39
 40 var
 41   Form1: TForm1;
 42
 43 implementation
 44
 45 {$R *.fmx}
 46 {$R *.NmXhdpiPh.fmx ANDROID}
 47
 48 procedure TForm1.Button1Click(Sender: TObject);
 49 var
 50   sURLPath,sFilePath: string;
 51   oFile: TFileStream;
 52 begin
 53   isDown := True;
 54   sFilePath := DownFilePath + FileName;
 55   if FileExists(sFilePath) then  //判断以前文件是否存在
 56     DeleteFile(sFilePath);
 57
 58 //  sURLPath:= ‘http://bcscdn.baidu.com/netdisk/BaiduYun_7.12.1.apk‘;//文件下载地址(用百度云测试了)
 59 //  本来想用百度云的,我艹,不知道为什么百度云下载着,就提示“connection closed gracefully”
 60   sURLPath:= ‘http://m.down.sandai.net/MobileThunder/Android_5.15.2.3820/XLWXguanwang.apk‘;//文件下载地址(用百度云测试了)
 61
 62   oFile := TFileStream.Create(sFilePath, fmCreate);  //文件下载后保存的路径
 63   try
 64     ProgressBar1.Value := 0;
 65     IdHTTP1.Get(sURLPath, oFile);
 66   except
 67   end;
 68   oFile.Free;
 69 end;
 70
 71 function TForm1.DownFilePath: string;
 72 begin
 73   Result := TPath.GetDownloadsPath + PathDelim;
 74 end;
 75
 76 procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
 77   AWorkCount: Int64);
 78 begin
 79   ProgressBar1.Value := AWorkCount;
 80 end;
 81
 82 procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
 83   AWorkCountMax: Int64);
 84 begin
 85   ProgressBar1.Value := AWorkCountMax;
 86 end;
 87
 88 procedure TForm1.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
 89 {$IFDEF ANDROID}
 90 Var
 91  oFile: Jfile;
 92  oIntent: JIntent;
 93 {$ENDIF}
 94 begin
 95   {$IFDEF ANDROID}
 96   //下载完成后自动安装
 97   if isDown then
 98   begin
 99     Try
100       oFile := TJfile.JavaClass.init(stringtojstring(DownFilePath), stringtojstring(FileName));
101       oIntent := TJIntent.Create;
102       oIntent.setAction(TJIntent.JavaClass.ACTION_VIEW);
103       oIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
104       oIntent.setDataAndType(TJnet_Uri.JavaClass.fromFile(oFile), StringToJString(‘application/vnd.android.package-archive‘));
105       SharedActivityContext.startActivity(oIntent);
106     Except
107     End;
108   end;
109   {$ENDIF}
110 end;
111
112 end.
时间: 2024-11-07 13:46:49

Android实例-IdHTTP下载(并实现自动安装)的相关文章

Android实例-IdHTTP下载(并实现自动安装)(XE10+小米2)

http://www.cnblogs.com/FKdelphi/p/5416941.html Android实例-IdHTTP下载(并实现自动安装)(XE10+小米2) 相关资料: 1.群号 383675978 2.运行时提示"connection closed gracefully"错误原因与解决 http://www.delphifans.com/InfoView/Article_4588.html 3.编译时提示"[Exec Error] The command ...

下载app后自动安装程序

其实很简单,只需要几行代码就好了,首先要到服务器下载apk,然后才能安装,当然不是傻子应该都知道,我这里用到的是Httputils去下载, 这里需要一些权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <

Android Service 后台下载

服务 import android.app.NotificationManager; import android.app.Service; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Environment; import android.os.IBinder; impor

Android 更新升级下载 自定义Updates 兼容版

Android 更新模块 自定义Update 写这个总结是因为在项目中碰到了Android系统兼容的BUG Android项目原本使用的是API提供的下载方法 如下: DownloadManager downloadManager = (DownloadManager) getSystemService(Activity.DOWNLOAD_SERVICE); DownloadManager.Request request = new Request(Uri.parse(dl)); request

Android Studio的下载和安装教程(从ADT到AS)

之前一直使用的是Android development tools(简称ADT),后来说是google对ADT不再提供支持,然后一直在考虑是否把自己电脑换成Android Studio(简称AS),从ADT到AS这个过程自己觉得软件安装真的伤不起,端午节第二天和第三天(也是今天),终于完成了从ADT到AS的转 变,OK,我还有很多要学习的地方. 下面我来介绍一下ADT的转变成AS: 1.第一次安装完之后模拟器根本启动不了(就算你刚新建的模拟器,他还是不能在启动APP时候没有可用的模拟器),而且用

下载更新文件后,调用安装器自动安装apk文件

在更新操作时,下载新apk之后,往往需要自动安装新apk,用以下代码即可安装下载在本地的apk文件(apkFile) Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); startActivity(intent);

Android7.0下载Apk自动安装

Android7.0下载Apk自动安装 1. 整体需求 下载APK文件 使用DownloadManager来下载 在应用界面中展示下载进度 安装下载后的APK文件 root模式: 可以自动安装,不需要用户主动点击 正常模式: 弹出安装应用页面,需要兼容7.0以上版本 2. DownloadManager DownloadManager是Android提供的用于下载的类,使用起来比较简单,它包含两个静态内部类DownloadManager.Query和DownloadManager.Request

在 Linux 实例上自动安装并运行 VNC Server

原文网址:https://help.aliyun.com/knowledge_detail/41181.html?spm=5176.8208715.110.11.4c184ae8mlC7Yy 您可以使用本文提供的脚本在Linux实例上自动安装并运行VNC Server,实现远程图形化管理Linux服务器.目前,该脚本仅适用于CentOS实例,会在CentOS实例中安装GNOME桌面环境. VNC Server脚本 适用镜像:目前仅适用于CentOS镜像. 使用方法:以root身份执行命令 bas

Android项目实战(三十一):异步下载apk文件并安装(非静默安装)

原文:Android项目实战(三十一):异步下载apk文件并安装(非静默安装) 前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask         异步任务的使用    耗时操作不能再主线程中进行      安卓开发_浅谈AsyncTask 3.File                   文件相关操作    将文件的字节数据生成文件 4.自动打开安装应用操