`

下载应用到SD卡并安装

 
阅读更多
更新软件时要用到将软件下载到SD卡并主动弹出安装界面,就想安卓市场一样,下面总结一个简单的实训过程:
1、检测某个应用是否已经安装了:
public boolean isPkgInstalled(String packageName) {
		PackageManager pm = getPackageManager();
		try {
			pm.getPackageInfo(packageName, 0);
		} catch (Exception e) {
			return false;
		}
		return true;
	}

只需要一个包名就可以了。如果是更新软件本身就没必要检测安装,只检测版本号就可以了。

2、判断sd卡是否存在:
private boolean isSDcard() {
		if (android.os.Environment.getExternalStorageState().equals(
				android.os.Environment.MEDIA_MOUNTED)) {
			return true;
		} else {
			return false;
		}
	}

如果不存在就没必要下载了。

3、下载并保存到sd卡:
	public void down_file(String url) {
		try {
			String path = "/sdcard/download/";
			filename = url.substring(url.lastIndexOf("/") + 1);

			URL myURL = new URL(url);
			URLConnection conn = myURL.openConnection();
			conn.connect();
			InputStream is = conn.getInputStream();
			fileSize = conn.getContentLength();
			if (fileSize <= 0)
				throw new RuntimeException(getString(R.string.download_unknow_size));
			if (is == null)
				throw new RuntimeException("stream is null");
			FileOutputStream fos = new FileOutputStream(path + filename);
			byte buf[] = new byte[1024];
			downLoadFileSize = 0;
			sendMsg(0);
			do {
				int numread = is.read(buf);
				if (numread == -1) {
					break;
				}
				fos.write(buf, 0, numread);
				downLoadFileSize += numread;
				sendMsg(1);
			} while (true);
			
			sendMsg(2);
			is.close();
		} catch (Exception ex) {
			Log.e("tag", "error: " + ex.getMessage(), ex);
		}
	}


4、等下载完成了就要启动安装界面:
	private void installAPK() {
		String fileName = getSDPath() +"/download/"+filename;
		Intent intent = new Intent(Intent.ACTION_VIEW);
		intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
		startActivity(intent);
	}


其中的sendMsg()方法是用于更新handler的。
0
3
分享到:
评论

相关推荐

    rtthread + STM32F407VE + esp8266 +SD卡 从网络下载文件存到SD卡中

    通过这样的设计,我们可以构建一个实用的系统,实现从互联网下载文件并保存到本地SD卡,为物联网应用提供了便利的数据获取和存储方案。这个项目不仅锻炼了开发者对RTOS的理解,还涵盖了嵌入式系统中的网络通信、存储...

    SD卡数据手册.rar_SD卡中文资料_SD卡手册_SD卡数据手册_SD卡规范_SD卡;数据手册;接口协议

    SD卡,全称为Secure Digital Memory Card,是一种广泛应用于便携式设备的数据存储媒介。本压缩包包含关于SD卡的重要中文资料,包括“SD卡中文数据手册”、“SD卡读写规范”以及“SD卡接口规范”,旨在帮助用户深入...

    android 下载文件到SD卡

    本教程主要介绍如何在Android应用中实现网络文件的下载并保存到SD卡。 1. **Android权限设置** 在AndroidManifest.xml文件中,你需要添加写入外部存储的权限: ```xml ``` 如果你的应用目标API等级高于23,还...

    Android安装软件到SD卡中

    在Android操作系统中,将应用程序安装到SD卡上是一种节省手机内置存储空间的有效方法。这个过程涉及到Android系统的存储管理机制,以及一些系统级别的设置。本文将详细介绍如何在Android设备上实现软件向SD卡的安装...

    把安卓软件安装到SD卡上,

    把安卓软件安装到SD卡的好帮手.在设置里有个首选安装位置

    串口接收+DMA存储到SD卡.zip

    在本文中,我们将深入探讨如何使用STM32F103单片机通过串口接收外部设备发送的数据,并利用DMA(直接内存访问)技术将其高效地存储到SD卡上。这个过程涉及到微控制器的串行通信、DMA机制以及与SD卡的交互,这些都是...

    软件移动到SD卡教程

    最后,"软2件移到SD卡link2sd软件设置教程.wps"提供了关于如何配置Link2sd的详细步骤,包括设置自动移动新安装的应用和定期清理缓存等实用功能。这样,即使新下载的应用也能自动优化存储分配,避免内部存储空间被...

    文件转移sd卡工具

    "文件转移SD卡工具"就是专为了解决这个问题而设计的,它可以帮助用户将安装在手机内存中的应用程序轻松迁移到外部SD卡上,以此释放宝贵的内存资源,提升手机的运行效率。 该工具的核心功能在于其能够智能识别并处理...

    SD卡 MMC卡 SDIO卡 TF卡资料SD卡V1.0 2.0协议 SD卡读写规范SD卡中文数据手册合集共计26个文档资料.zip

    本资料合集包含了SD卡从V1.0到V2.0的协议、读写规范以及接口规范等详细信息,对于理解其工作原理和技术细节非常有帮助。 1. **SD卡协议**:SD卡(Secure Digital Memory Card)是一种非易失性存储设备,遵循特定的...

    下载图片并保存到SD卡中

    在提供的`demo`压缩包文件中,可能包含了一个演示如何下载并保存图片到SD卡的Android应用示例项目,你可以通过解压并导入Android Studio来查看和运行代码。通过分析和学习这个示例,可以更深入地理解这个过程。

    SD卡程序:应用程序和部分驱动程序(自动检测SD卡).

    SD卡(Secure Digital Card)是一种非易失性存储设备,广泛应用于移动设备、数码相机、个人计算机和其他便携式电子设备中。SD卡程序通常包括应用程序和与之相关的驱动程序,这些组件共同确保设备能够正确识别和管理...

    基于SD卡的升级程序

    本教程将详细介绍如何基于STM32芯片实现一个BOOTLOADER程序,利用SD卡进行固件更新,并移植FATFS文件系统来处理升级文件。 1. **BOOTLOADER基础** BOOTLOADER是系统启动时运行的第一段代码,它的主要任务是初始化...

    sd卡驱动程序

    SD卡驱动程序是操作系统与硬件设备之间的重要桥梁,特别是在Linux这样的开源操作系统中,理解并编写SD卡驱动对于系统开发者和嵌入式工程师至关重要。SD卡(Secure Digital Card)是一种广泛应用于移动设备、数码相机...

    SD卡在单片机的应用

    标题中的“SD卡在单片机的应用”是指将Secure Digital(SD)卡作为一种存储设备,用于在微控制器或单片机系统中存储数据。SD卡因其容量大、接口简单、成本低等特点,常被用于嵌入式系统,尤其是那些需要大量数据存储...

    SD卡模块应用

    SD卡模块应用是一个广泛涉及硬件设计、嵌入式系统、数据存储和移动设备技术的领域。SD卡(Secure Digital Card)是一种便携式存储设备,广泛应用于数码相机、智能手机、平板电脑和其他电子设备中。本篇文章将深入...

    批量下载网络图片并且保存到SD卡后显示viewpage

    在Android应用开发中,批量下载网络图片并保存到SD卡是一项常见的需求,特别是在构建图片浏览类应用时。本文将详细讲解如何实现这一功能,并展示如何将下载的图片以ViewPager的形式展示给用户。 首先,我们需要理解...

    Unity应用获取外置SD卡路径方法

    本篇文章将详细介绍如何在Unity应用中获取外置SD卡的路径,并结合PicoVR SDK,实现适用于VR场景的打包和安装。 首先,我们要明确在Android平台上,外部存储通常指的是SD卡或者是设备提供的可移除存储空间。在...

    SD卡序列号修改工具(1).zip

    1. 下载与安装:首先,从可靠来源下载适用于你的操作系统的SD卡序列号修改工具。确保软件是安全无病毒的,并根据提示进行安装。 2. 连接SD卡:将SD卡插入读卡器,然后将其连接到电脑。确保电脑正确识别到SD卡。 3...

    DELL服务器通过sd卡安装系统(iDRAC-Use-vFlash-).docx

    DELL服务器通过sd卡安装系统(iDRAC-Use-vFlash-) 本文档主要介绍了如何使用iDRAC 6的vFlash功能将操作系统安装到DELL服务器上。下面将详细介绍相关知识点: 一、iDRAC 6 vFlash功能简介 iDRAC 6是DELL服务器的一...

Global site tag (gtag.js) - Google Analytics