安卓新版本升级,并自动安装apk
来源:互联网 发布:差分演化算法及其应用 编辑:程序博客网 时间:2024/05/29 04:35
记得添加intenet权限,和sdcard的读写权限
public class MainActivity extends AppCompatActivity { private String url = "具体下载新的apk的路劲"; private int versionCode; private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); x.view().inject(this); //得到当前的版本号,由于没有发布,所以无法得到新版本,暂时可以加页可以不加 try { versionCode = getPackageManager().getPackageInfo(getPackageName(), 0)
.versionCode; } catch (Exception e) { e.printStackTrace(); }
//发现新版本你的时候弹出对话框 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("发现新版本是否升级?"); builder.setPositiveButton("升级", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { initData(); } }); builder.setNegativeButton("取消", null); builder.create().show(); } private void initData() { //设置文件下载的位置和文件名字 String path = Environment.getExternalStorageDirectory().
getPath() + "/app.apk"; RequestParams params = new RequestParams(url); //设置程序不重新给下载的文件重新设置名字 params.setAutoRename(false); //设置断点续传 params.setAutoResume(true); //设置下载保存的路径 params.setSaveFilePath(path); x.http().get(params, new Callback.ProgressCallback<File>() { @Override public void onSuccess(File result) { Intent intent = new Intent(Intent.ACTION_VIEW);// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//可加可不加
//第一个参数是你下载的文件,第二个是固定内容,可直接复制 intent.setDataAndType(Uri.fromFile(result),
"application/vnd.android.package-archive"); startActivity(intent); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { if (dialog != null & dialog.getProgress() >= 100 &&
dialog.isShowing()) { dialog.dismiss(); Toast.makeText(MainActivity.this, "升级完成",
Toast.LENGTH_SHORT).show(); } } @Override public void onWaiting() { } @Override public void onStarted() { //初始化ProgressDiaLog initProgressDiaLog(); } @Override public void onLoading(long total, long current, boolean isDownloading)
{ //判断是否是在下载中,可加也可不加 if (isDownloading) { //算出来当前进度 int progress = (int) (current * 100 / total ); //把进度设置给progressBar dialog.setProgress(progress); } } }); } //创建进度条 private void initProgressDiaLog() { dialog = new ProgressDialog(this); dialog.setTitle("正在下载中..."); dialog.setProgress(0); dialog.setCancelable(false); //设置不可点击界面之外的区域让对话框消失 //设置进度条的样式 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog.show(); }}
阅读全文
0 0
- 安卓新版本升级,并自动安装apk
- android 应用自动升级安装并打开新版本应用
- 安卓-下载apk文件并自动安装
- Android 代码自动升级新版本更新apk时出现“已安装了存在签名冲突的同名数据包”
- Android----- 版本更新和 服务器下载新版本APK并安装
- apicloud安卓系统下载并安装APK
- apk下载并安装、断点续传、升级检测
- 自动升级安装安卓应用程序报错
- 关于安卓apk签名,OTA升级
- 从网络下载apk并自动安装
- Android下载APK并自动安装
- 安卓apk下载安装
- 安卓实现安装apk
- 安卓安装apk失败
- android实现自动升级并安装打开
- android实现自动升级并安装打开
- android实现自动升级并安装打开
- android apk 自动升级
- leetcode[Distribute Candies]//待整理多种解法
- HDU 2685 I won't tell you this is about number theory
- codeforces 841C Leha and Function
- 收藏(持续更新中)
- 算法竞赛入门经典java版程序CH3 UVa1368
- 安卓新版本升级,并自动安装apk
- 每天每周每月每年程序员该做的事情
- Leetcode--Longest Palindromic Substring(最长回文子序列)
- Execution failed for task ':app:mergeDebugResources'. > Error: java.util.concurrent.ExecutionExcepti
- Codeforces round#429 div2 C
- composer安装laravel
- 引入布局与创建自定义控件
- 常用的Linux命令
- 推荐一个网站