`

Android实现应用下载并自动安装apk包

 
阅读更多

安装:

String str = "/CanavaCancel.apk"; 
String fileName = Environment.getExternalStorageDirectory() + str; 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); 
startActivity(intent);

卸载:

Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");   
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);   
startActivity(uninstallIntent);

Environment拥有一些可以获取环境变量的方法
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).

//下载apk程序代码

protected File downLoadFile(String httpUrl) {
                // TODO Auto-generated method stub
                final String fileName = "updata.apk";
                File tmpFile = new File("/sdcard/update");
                if (!tmpFile.exists()) {
                        tmpFile.mkdir();
                }
                final File file = new File("/sdcard/update/" + fileName);

                try {
                        URL url = new URL(httpUrl);
                        try {
                                HttpURLConnection conn = (HttpURLConnection) url
                                                .openConnection();
                                InputStream is = conn.getInputStream();
                                FileOutputStream fos = new FileOutputStream(file);
                                byte[] buf = new byte[256];
                                conn.connect();
                                double count = 0;
                                if (conn.getResponseCode() >= 400) {
                                        Toast.makeText(Main.this, "连接超时", Toast.LENGTH_SHORT)
                                                        .show();
                                } else {
                                        while (count <= 100) {
                                                if (is != null) {
                                                        int numRead = is.read(buf);
                                                        if (numRead <= 0) {
                                                                break;
                                                        } else {
                                                                fos.write(buf, 0, numRead);
                                                        }

                                                } else {
                                                        break;
                                                }

                                        }
                                }

                                conn.disconnect();
                                fos.close();
                                is.close();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block

                                e.printStackTrace();
                        }
                } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block

                        e.printStackTrace();
                }

                return file;
        }
//打开APK程序代码

private void openFile(File file) {
                // TODO Auto-generated method stub
                Log.e("OpenFile", file.getName());
                Intent intent = new Intent();
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.setAction(android.content.Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.fromFile(file),
                                "application/vnd.android.package-archive");
                startActivity(intent);
        }

 
分享到:
评论

相关推荐

    Android实现下载APK文件并自动执行安装

    在Android平台上,实现从网络下载APK文件并自动执行安装是一个常见的需求,尤其在更新应用或者分发非市场应用时。这个过程涉及到多个步骤,包括网络请求、文件下载、权限处理以及安全检查。下面我们将详细讲解如何...

    android应用下载安装apk升级版本实现demo适配Android10

    本示例“android应用下载安装apk升级版本实现demo适配Android10”聚焦于如何在Android 10(API级别29)及更高版本中实现这一过程。以下是关于这一主题的详细知识: 1. **安全下载APK**:在Android 10中,为了保障...

    Android 自动安装apk

    在Android平台上,自动安装APK是一项常见的操作,尤其对于开发者来说,这有助于快速测试和部署应用。本示例,"Android 自动安装apk",提供了一个DEMO,它允许用户无需手动操作即可安装APK文件。这个过程涉及到...

    Android 更新下载apk 安装apk 打开apk

    在Android平台上,更新、下载、安装以及打开APK文件是应用程序生命周期中的常见操作。下面将详细阐述这些过程及其相关的知识点。 一、Android APK文件 APK(Android Package)是Android系统中应用程序的安装包,...

    Android 8.0不能自动安装APK问题的解决方法(完美适配)

    如何开启未知应用安装权限的入口,并设置允许安装? 在清单文件中添加权限 &lt;uses android:name=android.permission.REQUEST_INSTALL_PACKAGES/&gt; 判断当前是否为8.0以上系统(在这之前也可以对7.0系统进行判断,...

    Android 实现应用下载后自动安装 源码

    以上就是实现Android应用下载后自动安装的核心技术点,包括文件系统操作、权限管理和BroadcastReceiver的使用。在实际开发中,可能还需要处理更多细节,比如错误处理、用户交互等,确保功能的稳定性和用户体验。通过...

    Android7.0下载Apk自动安装

    本教程将详细讲解如何在Android 7.0及更高版本上实现Apk的自动下载与安装,主要基于提供的"InstallAPKDemo"示例项目。 首先,理解Android 7.0的权限管理变化是至关重要的。在之前的版本中,用户在安装应用时会一次...

    Android-使用DownloadManager下载完apk自动提示安装的功能

    在Android应用开发中,有时我们需要实现一个功能,即使用系统内置的`DownloadManager`服务来下载APK文件,并在下载完成后自动提示用户进行安装。这个功能对于应用的更新或者安装外部资源非常实用。本文将详细讲解...

    适配Android高低版本自动更新apk安装

    在Android应用开发中,适配不同的系统版本是一项重要的任务,特别是在自动更新APK的过程中。本文将深入探讨如何解决Android10以下及以上的系统版本中,下载更新的APK自动安装失败的问题,为开发者提供实用的解决方案...

    android 无sdcard 下载安装 apk 多线程 断点 自动安装apk

    综上所述,通过合理利用Android提供的API和服务,开发者可以实现无SD卡环境下的高效、安全、便捷的APK下载与安装。在实际开发中,可能还需要考虑到设备性能、内存管理以及用户体验等因素,以打造更加完善的下载和...

    Android 实现静默安装并自动重启(需要root)

    在Android系统中,静默安装是指在用户无感知的情况下,后台自动执行APK应用程序的安装过程。这通常需要设备具有root权限,因为常规情况下,Android系统出于安全考虑并不允许非系统应用进行静默安装。本篇文章将深入...

    APK自动静默安装并自动重新启动

    在Android系统中,APK自动静默安装并自动重新启动是一项技术操作,通常涉及到系统级权限和特定的脚本编写。这项技术常用于批量设备管理、应用自动化测试或企业内部应用部署等场景。以下是关于这个主题的详细知识讲解...

    安卓文件下载上传解压相关-Android实现应用下载后自动安装源码.zip

    这个压缩包"安卓文件下载上传解压相关-Android实现应用下载后自动安装源码.zip"提供了关于如何在Android上实现应用自动下载并安装的示例代码。下面将详细探讨这些知识点。 1. 文件下载: 在Android中,可以使用...

    Android无需Root静默安装apk

    对于没有物理访问设备或者不能使用Adb的情况,可以创建一个Android应用,该应用包含一个服务,用于在后台静默安装APK。这个服务通常需要在系统级别的权限下运行,因此通常需要设备制造商签名的系统应用才能实现。 1...

    Android 下载APK 安装APK 打开APK

    在Android系统中,下载、安装和打开APK文件是用户获取和使用应用程序的基本流程。APK(Android Package)是Android操作系统中的应用软件包文件格式,相当于iOS中的.ipa文件。以下将详细介绍这些过程以及实现这一功能...

    Android应用源码APK实现静默安装整套资料

    如果用过一些手机助手的朋友都知道,手机助手下载其他软件的更新程序后会自动静默更新。APK静默安装是指实现了在APK文件安装过程中不会出现系统安装对话框。不仅可以安装新的apk,也适用于更新旧的apk。更新apk必须...

    Android APK文件下载 并自动安装 显示文件下载进度,速度,以及花费时间

    在Android平台上,开发一个能够下载APK文件并自动安装的应用是一项常见的需求,同时显示文件的下载进度、速度以及预计的完成时间,可以提供用户友好的体验。以下将详细讲解实现这个功能所需的关键知识点: 1. **...

    Android实现静默安装APK的两种方法.doc

    标题与描述均提到了“Android实现静默安装APK的两种方法”,这表明文章将探讨在Android设备上不经过用户交互就能自动安装APK(应用包)文件的技术。这一功能对于自动化部署、企业级应用更新或系统级软件管理场景尤为...

    android使用DownloadManager自动更新,安装apk

    通过以上步骤,我们就可以使用Android的`DownloadManager`实现自动下载并安装APK更新了。这种方式既简单又高效,能确保用户在不打开应用的情况下也能接收到新版本的更新。在实际开发中,还可以根据需求增加一些额外...

Global site tag (gtag.js) - Google Analytics