需要在AndroidManifest.xml中加入权限:
//读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//网络权限
<uses-permission android:name="android.permission.INTERNET"/>
用Xuits网络请求:
创建App类:
public class App extends Application{ @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); } }
记得在AndroidManifest里引用:
android:name=".app.App"
在MainActivi里操作:
创建downLoad方法:
private void downLoad() { //需要下载的Apk地址
String url = "http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk"; //保存到SDcard的路径
String path = Environment.getExternalStorageDirectory() + "/apk/myapk.apk"; final File file = new File(path); RequestParams requestParams = new RequestParams(url);//断点续传 requestParams.setAutoResume(true); requestParams.setAutoRename(false); requestParams.setSaveFilePath(path); x.http().get(requestParams, new Callback.ProgressCallback<File>() { @Override public void onSuccess(File result) {//调用自动安装Apk的方法 Toast.makeText(MainActivity.this, "正在安装中......", Toast.LENGTH_SHORT).show(); installAPK(result); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { progressDialog.dismiss(); } @Override public void onWaiting() { } @Override public void onStarted() {//调用下载进度的方法 showProgressDialog(); } @Override public void onLoading(long total, long current, boolean isDownloading) { float progress = (float) current / (float) total * 100; if (progress >= 0 && progress <= 100) { progressDialog.setProgress((int) progress); } } }); }//设置下载进度,把PrograssDialog设置成全局变量private void showProgressDialog() { progressDialog = new ProgressDialog(this); progressDialog.setMessage("正在下载......"); progressDialog.setProgress(0); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.show(); }//设置自动安装Apk的方法//自动安装Apk private void installAPK(File savedFile) { //调用系统的安装方法 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(Uri.fromFile(savedFile), "application/vnd.android.package-archive"); startActivity(intent); }最后在onCreate调用downLoad()方法即可